Я использую Laravel Collective HTML и я создаю форму следующим образом:Laravel Коллективного HTML флажки образуют значение «на» вместо «1» вызывают проблемы во время добавления | обновить элемент DB
{!! Form::model($band, ['method' => 'PATCH','route' => ['bands.update', $band->id]]) !!}
<div class="row">
<div class="col-xs-4 col-sm-4 col-md-4">
...
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Still active?:</strong>
{!! Form::checkbox('still_active', null, array('class' => 'form-control')) !!}
</div>
</div>
...
</div>
</div>
{!! Form::close() !!}
Он отлично работает , что означает, что значение still_active
, поступающее из БД, равно 1
, флажок отображается отмеченным или непроверенным, если значение 0
. Если я проверяю и вариант и попытаться сохранить элемент, я получил следующее сообщение об ошибке:
QueryException in Connection.php line 770:
SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect integer value: 'on' for column 'still_active' at row 1 (SQL: update `bands` set `start_date` = 2016-12-26, `still_active` = on, `updated_at` = 2016-12-26 22:58:19 where `id` = 47)
меня проверить данные формы, отправленные на сервер, и я могу видеть still_active
набор для on
вместо 1
:
_method:PATCH
_token:PtVu9DCMcV0EXlJRAKxMOOkobNWL2O2bbKhNWRtV
name:Nayeli Hoppe
start_date:2016-12-26
website:https://bogisich.com/accusamus-sequi-aspernatur-et.html
still_active:on
Это является обработка данных на контроллере метод:
public function update(Request $request, $id)
{
$this->validate($request, [
'name' => 'required',
'start_date' => 'required',
'website' => 'required',
]);
Band::find($id)->update($request->all());
return redirect()->route('bands.index')
->with('success', 'Band updated successfully');
}
Как я могу избежать этого? Нужно ли мне преобразовывать данные на контроллере, прежде чем сохранять его?