запрос на обновление для обновления двух полей в laravel

#php #mysql #laravel

#php #mysql #laravel

Вопрос:

Я хочу обновить два поля в laravel 5.3. У меня есть два значения полей ‘status_id’ и ‘comment’. мой запрос работает, я обновляю только поле ‘status_id’

   DB::table('travel_request')
        ->where('id',$id )
        ->update(['status_id' => DB::table('travel_request_status')->where('status', $status)->first()->id]);
  

Я попытался обновить два поля следующим образом

 DB::table('travel_request')
        ->where('id',$id )
        ->update(['status_id' => DB::table('travel_request_status')->where('status', $status)->first()->id],['comment'=>$comment]);
  

Ответ №1:

Вы передаете два массива, но вы должны передать один массив с двумя key => value парами в качестве параметра:

 DB::table('travel_request')
    ->where('id', $id)
    ->update([
        'status_id' => DB::table('travel_request_status')->where('status', $status)->first()->id,
        'comment' => $comment
    ]);
  

Ответ №2:

Все поля должны быть в одном массиве.

Согласно документации Laravel, метод update ожидает массив пар столбцов и значений, представляющих столбцы, которые должны быть обновлены.

Попробуйте

 DB::table('travel_request')
        ->where('id',$id )
        ->update(['status_id' => DB::table('travel_request_status')->where('status', $status)->first()->id, 'comment'=>$comment]);
  

Ответ №3:

вы помещаете закрытие в неправильное место

 DB::table('travel_request')
        ->where('id',$id )
        ->update(['status_id' => 
                      DB::table('travel_request_status')->where('status', $status)->first()->id
                 ,'comment'=>$comment]);
  

Ответ №4:

Внесите небольшое изменение.

 DB::table('travel_request')
->where('id',$id )
->update(['status_id' => DB::table('travel_request_status')->where('status', $status)->first()->id,'comment' => $comment
]);