#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
]);