Laravel复选框已检查问题

时间:2018-05-25 08:22:16

标签: html forms laravel laravel-5 laravel-5.6

我正在使用表单模型绑定,我的编辑表单中有一个复选框字段。

       <div class="form-group">
            <div class="form-check">
                {!! Form::checkbox('is_played', 1, $game->is_played === 1 ? true : false, ['id' => 'is-game-played-check', 'class' => 'form-check-input', 'autocomplete' => 'off']) !!}
                <input type="hidden" name="is_played" value="0">
                <label class="form-check-label" for="is-game-played-check">
                    IS played ?
                </label>
            </div>
        </div>

当我进入编辑视图时,表单中的每个其他字段都会填充而没有任何问题,但在确保条件$game->is_played === 1时不会检查复选框。我还注意到,当我刷新页面时,如果确保条件$game->is_played === 1,则选中复选框。

我也尝试过使用HTML代替Laravel的表单助手,而且它的工作没有任何问题。

<input id="is-game-played-check" class="form-check-input" {{ $game->is_played === 1 ? 'checked' : '' }} name="is_played" type="checkbox"value="1">

这里有什么问题?

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:0)

如果$a === $b等于true并且它们属于同一类型,则

$a会返回$b。 在这种情况下,$game->is_played === 1返回false,因为$game->is_played不是整数类型1

因此解决方案是使用==代替===

答案 1 :(得分:-1)

试试这个:

<input id="is-game-played-check" class="form-check-input" {{ ($game->is_played === 1) ? 'checked' : '' }} name="is_played" type="checkbox" value="1">

只需添加()