2017-09-08 34 views
1

Laravel 5.5,Laravelcollective 5.4表格模型Laravelcollective結合,默認選中的複選框從不顯示選中

在我的編輯頁面框總是顯示數據庫中檢查,在任何狀態下。 (已經確認它的工作原理沒有默認檢查。)

我使用相同的表單字段爲我的創建路線,並希望默認進行檢查。

{{ Form::model($client, ['route' => ['clients.update', $client->id], 'method' => 'patch']) }} 
{{ Form::checkbox('active', 'Yes', true) }} 
{{ Form::close() }} 

回答

1

按照documentation on form model binding

所以,當務之急是這樣的:

  1. 會議閃存數據(舊輸入)
  2. 顯式地傳遞價值
  3. 模型屬性數據

請注意,顯式傳遞值似乎不是默認回退值,而是提供的實際值(如果提供的話)(與模型無關)。因此,這似乎是預期的行爲。

更新:由於在評論中討論的,解決辦法,允許在沒有模型集合是使用時的備用值:

{{ Form::checkbox('active', 'Yes', isset($client)?null:true) }} 
+0

任何變通方法,可以覆蓋此? –

+0

@MikeThrussell那麼問題是,你正在嘗試使用'Form :: model'在你有一個模型的情況下,以及在你沒有的情況下(這不是它打算做的)。你可以像'Form :: checkbox('active','Yes',$ client!== null?null:true)'或類似的東西 – apokryfos

+0

必須使用'{{Form :: checkbox('主動','是',isset($ client)?null:true)}}'在創建表單上設置爲'$ client'變量。 –