在Laravel 5.4中,我需要选中一个复选框,如果在之前的保存中选中了它

时间:2017-10-12 22:51:20

标签: laravel laravel-5 laravel-5.4

如果我之前在我的一个数据库条目上检查了它,我无法解决我需要做什么才能让我的复选框显示检查。

我的数据库有一个名为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列。任何帮助将不胜感激

1 个答案:

答案 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) !!}