更新或创建行数据库。拉拉维尔

Posted

技术标签:

【中文标题】更新或创建行数据库。拉拉维尔【英文标题】:Update or create rows database. Laravel 【发布时间】:2021-07-12 20:11:52 【问题描述】:

我在数据库中创建新记录时遇到了一点问题。我需要在技能表中创建或更新记录。来自用户的请求是一个数组。我使用循环从请求中检索数据。当我提交表单时,技能数组显示为空。我该如何解决这个问题?

谢谢,提前

    $skills = [];
    
   for ($i = 0;$i < count($validated['skills_name']);$i++)
   
    
          $data = [
                   'name' => $validated['skills_name'][$i], 
                   'rate' => $validated['skills_rate'][$i]
                  ];
    
          $skills[] = $data;                  
    
    
    Skill::updateOrCreate(['profile_key' => Auth::user()->profile->key],$skills);

【问题讨论】:

【参考方案1】:

感谢大家的支持。我解决了这个问题。

for ($i=0; $i <count($validated['skills_name']) ; $i++) 
 
     $skill = new Skill();
     $skill->profile_key = Auth::user()->profile->key;
     $skill->name = $validated['skills_name'][$i];
     $skill->rate = $validated['skills_rate'][$i];
     $skill->save();                          

【讨论】:

【参考方案2】:

php 中,你可以像这样创建一个空数组

$skills = array();

然后如果你想将数据推送到数组中,你可以简单地使用这段代码

array_push($skills , $data);

【讨论】:

问题出在这里。 Skill::updateOrCreate(['profile_key' =&gt; Auth::user()-&gt;profile-&gt;key],------$skills is empty------$skills);

以上是关于更新或创建行数据库。拉拉维尔的主要内容,如果未能解决你的问题,请参考以下文章

拉拉维尔。如果数据库正在播种,则禁用观察者方法

我怎样才能“在哪里”原始列(DB::raw)。 [拉拉维尔]

如何使用 AJAX 渲染部分内容?拉拉维尔 5.2

如何限制数据透视表的访问?拉拉维尔

将数据从一个模型加载到另一个模型,空数组。拉拉维尔

显示功能不起作用。无法按 id 检索元素。拉拉维尔 5.8