首页 > 解决方案 > Laravel 复选框检查问题

问题描述

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

       <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">

这里可能是什么问题?

任何帮助,将不胜感激。

标签: htmlformslaravellaravel-5laravel-5.6

解决方案


$a === $btrue如果$a等于$b并且它们属于同一类型,则返回。在这种情况下$game->is_played === 1返回 false 因为$game->is_played不是整数类型1

所以解决方案是使用==而不是===


推荐阅读