2014-09-06 89 views
0

這是示例性形式的代碼:用於保存使用laravel陣列形式複選框

{{Form::checkbox('selection[]', '1')}} 
{{Form::checkbox('selection[]', '2')}} 
{{Form::checkbox('selection[]', '3')}} 
{{Form::checkbox('selection[]', '4')}} 

這是示例代碼:

$selection = json_encode(Input::get('selection')); 

應當然後保存到MySQL表中「選擇」柱。

那麼現在,我怎樣才能將數據檢索到窗體編輯模式?

謝謝。

回答

0
$selections = json_decode($selectionFieldFromDB); // pass it to the view 

// then just: 
@foreach (range(1,4) as $i) 
{{ Form::checkbox('selection[]', $i, in_array($i, $selections)) }} 
@endforeach 

記住,如果你有你的模型selection的屬性,然後Laravel會忽略in_array()一部分,因爲它首先檢查綁定的對象上的值。

因此,如果您希望它像我建議的那樣工作,請不要使用selection名稱作爲複選框,如果這是您的模型屬性的名稱。

+0

感謝您的回答。但是我發現一個問題,當數據庫表中的selection字段有值時,將會檢查所有'selection []'複選框。我如何克服這一點? – user1995781 2014-09-08 01:31:09

+0

你錯了,只有那些db纔會被選中,所以顯示你的代碼。 – 2014-09-08 06:24:46

+0

我相信我沒有錯。你可以嘗試一下。即使使用非數組複選框,複選框的選擇依賴於數據庫。無論我將它設置爲是否被檢查,它都將在編輯模式下被忽略。 – user1995781 2014-09-08 08:24:33