I am using a checkbox in a form, for some reasons I can't store the value of the checkbox status (checked or unchecked).
I am using form model binding.
My form is:
{!! Form::model($profile, ['method' => 'PATCH', 'action' => ['ProfilesController@update', $profile->id]]) !!}
<div class="form-group">
{!! Form::label('wifi', 'Wifi') !!}
{!! Form::checkbox('wifi','yes', $profile->wifi) !!}Wifi
</div>
{!! Form::close() !!}
My Schema:
$table->boolean('wifi')->nullable();
But I also tried it with an integer
I can't figure out what I am doing wrong
Your this piece of code
{!! Form::checkbox('wifi','yes', $profile->wifi) !!}Wifi
is generating this
<input checked="checked" name="wifi" type="checkbox" value="yes">
Which means that you are sending the value yes
to the server but your column data type is not varchar/text. You set it to boolean.
update your code to this because you are using form model binding
so no need to popluate it, laravel will do this for you.
{!! Form::checkbox('wifi') !!} Wifi
Also, include your wifi
key in fillable
and casts
array. like so
protected $fillable = [ ..., 'wifi' ];
protected $casts = [ 'wifi' => 'boolean' ];
Note: your schema code
$table->boolean('wifi')->nullable;
nullable
is not a property, it is a function. so update it as well
$table->boolean('wifi')->nullable();
After that refersh your database migration
php artisan migrate:refresh
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With