2016-12-26 6 views
0

Я использую 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'); 
} 

Как я могу избежать этого? Нужно ли мне преобразовывать данные на контроллере, прежде чем сохранять его?

ответ

0

попробовать {!! Form::checkbox('still_active', 1, null, array('class' => 'form-control')) !!}

Here некоторые ссылки.