У меня есть следующая форма, это простая форма с одним переключателем:
@extends('layouts.app')
@section('content')
<h1>Accomodation</h1>
<p>This is the accomodation page.</p>
{!! Form::open(['action' => ['UserController@update', Auth::id()], 'method' => 'POST']) !!}
<div class="form-group">
{{Form::label('ConsiderForAccommodation', 'Consider Me For Accommodation')}}
{{Form::checkbox('ConsiderForAccommodation', 'Consider Me For Accommodation', false)}}
</div>
{!! Form::token() !!}
{{Form::hidden('_method', 'PUT')}}
{{Form::submit('Submit', ['class' => 'btn btn-primary'])}}
{!! Form::close() !!}
@endsection
Затем я пытаюсь обновить значение «думать для связи », которое является полем, добавленным в таблицу пользователей:
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function update(Request $request)
{
// Update the given user
$user = auth()->user();
$user->ConsiderForAccommodation = $request->input('ConsiderForAccommodation');
$user->save();
return redirect('/accommodation');
}
Тем не менее, после установки флажка и отправки формы мне выдается следующее сообщение:
SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect integer value: 'Consider Me For Accommodation' for column 'ConsiderForAccommodation' at row 1 (SQL: update `users` set `updated_at` = 2019-03-18 20:44:37, `ConsiderForAccommodation` = Consider Me For Accommodation where `id` = 1)
Похоже, что этот метод обновления достигает цели, однако я, похоже, что-то делаю не так, так как он не поднимает значение флажка.
Что я делаю не так? Если потребуется больше кода, я буду рад обновить сообщение.
РЕДАКТИРОВАТЬ - Миграция таблицы пользователя, глядя в MySQL столбец был создан как «TinyInt», который, насколько я знаю, является правильным типом:
class UserAddAccomodationFields extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
// Add field "ConsiderForAccommodation" to table.
Schema::table('users', function(Blueprint $table)
{
$table->boolean('ConsiderForAccommodation');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
// Remove field "ConsiderForAccommodation" from table.
Schema::table('users', function(Blueprint $table)
{
$table->dropColumn('ConsiderForAccommodation');
});
}
}