如果我之前在我的一个数据库条目上检查了它,我无法解决我需要做什么才能让我的复选框显示检查。
我的数据库有一个名为languages的字段。在其中我存储了用户流利的语言。我这样做,他们填写一个包含很多复选框的表单。这就是我的表单:
<label class="checkbox-inline">
<input type="checkbox" id="inlineCheckbox" name="languages[]" value="English"> English
</label><br/>
<label class="checkbox-inline">
<input type="checkbox" id="inlineCheckbox" name="languages[]" value="Finnish"> Finnish
</label><br/>
<label class="checkbox-inline">
<input type="checkbox" id="inlineCheckbox" name="languages[]" value="French"> French
</label><br/>
<label class="checkbox-inline">
<input type="checkbox" id="inlineCheckbox" name="languages[]" value="German"> German
</label><br/>
<label class="checkbox-inline">
<input type="checkbox" id="inlineCheckbox" name="languages[]" value="Italian"> Italian
</label><br/>
<label class="checkbox-inline">
<input type="checkbox" id="inlineCheckbox" name="languages[]" value="Portugese"> Portugese
</label><br/>
然后当我将它保存到数据库时,它会像这样保存:
["English", "Portugese"]
我已经制作了一个编辑页面,但是当我打开编辑表单时,如何标记为例如英语和Portguese?
MySQL表列是JSON列。任何帮助将不胜感激
答案 0 :(得分:2)
我发现Laravel Collective Form library对于管理表单元素中的状态非常有用。
$selected = ['English', 'Portuguese'];
{!! Form::checkbox('languages[]', 'English', in_array('English', $selected)) !!}
{!! Form::checkbox('languages[]', 'Finnish', in_array('Finnish', $selected)) !!}
{!! Form::checkbox('languages[]', 'French', in_array('French', $selected)) !!}
...
要回答您的跟进问题,要使用select
字段,您需要执行以下操作:
$options = [
// 'Value' => 'Label'
'English' => 'English',
'Finnish' => 'Finnish',
'French' => 'French',
];
$selected = 'English';
{!! Form::select('language', $options, $selected) !!}