【问题标题】:Laravel update array syntaxLaravel 更新数组语法
【发布时间】:2018-02-05 08:50:31
【问题描述】:

我在 Laravel 中通过 POST 执行记录更新数组时遇到问题。 我已经捕获了数组中的所有帖子数据无法更新数组成就

<form action="{{'updateapp'}}" method="post">
<table>
<tr><td>
<input type="checkbox" class="id" name="id[]" value="{{ $quarter->id }}" />
<input type="text" name="achv[]" value="{{ $quarter->achievement }}">
</td></tr>
</table>
</form>

控制器:

public function foo(Request $request)
{
    $ids = $request->id;
    $achvs = $request->achv;
    DB::table('quarters')->whereIn('id', $ids)
    ->update(array(['achievement' => $achvs ]));   

    return redirect('evaluator');      
  }

【问题讨论】:

    标签: php laravel


    【解决方案1】:
    public function foo(Request $request)
    {
        $ids = $request->id[0];
        $achvs = $request->achv[0];
        DB::table('quarters')->where('id', $ids)
        ->update(array(['achievement' => $achvs,'achievement1' => $achvs1]));
        return redirect('evaluator');      
      }
    

    【讨论】:

    • 虽然所有答案都值得赞赏,但最好在你的答案中有一些细节和解释,这样有类似问题的人也能理解。
    【解决方案2】:

    由于您在表单中设置了 [] 数组,您可以按以下方式访问它

    public function foo(Request $request)
    {
        $ids = $request->id[0];
        $achvs = $request->achv[0];
        DB::table('quarters')->where('id', $ids)
        ->update(['achievement' => $achvs ]);   
    
        return redirect('evaluator');      
      }
    

    如果要更新多行,请使用以下代码:

    foreach($request->id as $key => $value){ 
    
          $quarters = Quarters::find($request->id[$key]); 
          $quarters->achievement = $request->achv[$key]; 
          $quarters->save(); 
    }
    

    【讨论】:

    • Grammar.php 第 118 行中的 FatalThrowableError:类型错误:传递给 Illuminate\Database\Grammar::parameterize() 的参数 1 必须是数组类型,给定字符串,在 C:\xampp\ 中调用htdocs\sofia-project\vendor\laravel\framework\src\Illuminate\Database\Query\Grammars\Grammar.php 在第 376 行
    • 你的问题现在有点混乱。请详细说明您到底想要什么。
    • 我理解正确,我已经更新了我的答案。请检查上面的代码
    猜你喜欢
    • 2012-11-21
    • 1970-01-01
    • 2019-02-23
    • 2020-08-19
    • 2018-12-11
    • 2018-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多