#結論
これ↓
blade
<input type="checkbox" name="fluits[]" value="1"
{{ is_array(old("fluits")) && in_array("1", old("fluits"), true)? 'checked="checked"' : '' }}
>
#以下結論に至った流れ
はじめに
・laravelのview(~~~.blade.php)です
・どうしてもinputタグを使って今回の問題をクリアしたい
・Form::checkbox()メソッドは使いたくない
・チェックボックスは複数選択されるものとする
リダイレクトした際にチェックされない
blade
<input type="checkbox" name="fluits[]" value="1" {{ old("fluits") === "1"? 'checked="checked"' : '' }}>
<!-- nameを配列[]にすることで、複数選択された場合でも値が全て取得できる -->
####{{}}の中は三項演算子
blade
{{ old("fluits") === "1"? 'checked="checked"' : '' }}
<!-- ↑はつまりこういう↓こと -->
@if(old("fluits") === "1")
checked='checked'
@else
@endif
<!-- old()で直前の入力値を取得して値と比較し、trueならchecked="checked"を返す -->
しかし取得した値は配列なのでこれじゃうまくいかない;
in_array()で配列に値があるかチェックする
blade
<input type="checkbox" name="fluits[]" value="1" {{ in_array("1", old("fluits"), true)? 'checked="checked"' : '' }}>
これだとold()で取得した値がNULLのとき怒られる;
【in_array() expects parameter 2 to be array, null given】
is_array()、in_array()を併用して解決
blade
<input type="checkbox" name="fluits[]" value="1" {{ is_array(old("fluits")) && in_array("1", old("fluits"), true)? 'checked="checked"' : '' }}>
今のところこれしか思いつかないよ(´・ω・`)