bugfix> html > 投稿

フォームモデルバインディングを使用しており、編集フォームにチェックボックスフィールドがあります。

      <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 の場合にチェックされることに気づきました保証されます。

また、Laravelのフォームヘルパーの代わりにHTMLを使用してみましたが、問題なく動作しました。

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

ここで何が問題になりますか?

任意の助けをいただければ幸いです。

回答 2 件
  • $a === $b   true を返します   $a の場合   $b と等しい  そして、それらは同じタイプです。 この場合は $game->is_played === 1   $game->is_played のためfalseを返します   1 のような整数型ではありません

    そのため、解決策は == を使用することです   === の代わりに

  • これを試して:

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

    () を追加するだけ 。

あなたの答え