【问题标题】: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);

【问题讨论】:

    标签: php arrays laravel for-loop eloquent


    【解决方案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);
      猜你喜欢
      • 2017-03-12
      • 2018-08-26
      • 1970-01-01
      • 1970-01-01
      • 2016-06-20
      • 2021-01-17
      • 1970-01-01
      • 1970-01-01
      • 2021-05-05
      相关资源
      最近更新 更多