Обновление нескольких столбцов базы данных с несколькими текстовыми полями в Laravel - PullRequest
2 голосов
/ 14 апреля 2020

Я хочу обновить три поля в трех столбцах моей базы данных. Каждый раз, когда я запускаю это, последнее поле обновляется во всех полях. Кто-нибудь, пожалуйста, помогите. Заранее спасибо.

public function updateResult(Request $request)
{
$id = $request->student_id;

if(count($request->mark) > 0)
  {
      foreach($request->mark as $item=>$v){
        $data=array(
            'mark'=>$request->mark[$item],
            'grade'=>$request->grade[$item],
            'student_id'=>$request->student_id[$item],
        );
    Result::where('student_id', $id)->update($data);
  }
}

      return Redirect()->back();

}

1 Ответ

1 голос
/ 14 апреля 2020

Вы установили здесь идентификатор $id = $request->student_id, и каждый раз, когда вы обновляете Result, вы обновляете те же строки снова. Я думаю, вы должны сделать это:

public function updateResult(Request $request)
{
    // $id = $request->student_id; 
    // Note: The line above is no longer needed

    if(count($request->mark) > 0){
        foreach($request->mark as $item=>$v){
            $data=array(
                'mark'=>$request->mark[$item],
                'grade'=>$request->grade[$item]
                // Note: There is no need to include student_id here unless you actually intend to change the ID
            );

            Result::where('student_id', $request->student_id[$item])->update($data);
            // Note: In the line above, I replaced $id with $request->student_id[$item] to update the specific student
        }
    }

    return Redirect()->back();
}

Надеюсь, это поможет вам

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...