[英]Laravel 5 Form Model Binding Checkbox Values
我在表單中使用了一個復選框,由於某些原因我無法存儲復選框狀態的值(已選中或未選中)。
我正在使用表單模型綁定。
我的表格是:
{!! 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() !!}
我的架構:
$table->boolean('wifi')->nullable();
但我也嘗試用整數
我無法弄清楚我做錯了什么
你的這段代碼
{!! Form::checkbox('wifi','yes', $profile->wifi) !!}Wifi
正在產生這個
<input checked="checked" name="wifi" type="checkbox" value="yes">
這意味着您將值yes
發送到服務器,但您的列數據類型不是varchar / text。 您將其設置為布爾值。
將代碼更新為此,因為您正在使用form model binding
因此無需彈出它,laravel將為您執行此操作。
{!! Form::checkbox('wifi') !!} Wifi
此外 ,將您的wifi
密鑰包含在fillable
和casts
數組中。 像這樣
protected $fillable = [ ..., 'wifi' ];
protected $casts = [ 'wifi' => 'boolean' ];
注意:您的架構代碼
$table->boolean('wifi')->nullable;
nullable
不是屬性,它是一個函數。 所以也要更新它
$table->boolean('wifi')->nullable();
在那之后引用您的數據庫遷移
php artisan migrate:refresh
這取決於你是如何試圖保持這些數據。
如果您正在使用save()
方法,請執行以下操作:
$model->wifi = isset($request->wifi);
PS:我想應該是->nullable()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.