Amn378
@Amn378

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Form::checkboxの書き方について

Q&A

Closed

解決したいこと

DBからとってきた項目よりチェックボックスを動的に作成しています。その変更前の項目がold関数で取れたらそれを、とれなかったらデフォルトをcheckedにしておきたいと考えているのですが、うまくいきません。
正しい記述方法をご指南いただければありがたいです。

発生している問題・エラー

---Whoops!
Arguments
"Cannot use isset() on the result of an expression (you can use "null !== expression" instead)"

該当するソースコード

--- home.blade.php
@foreach($dev_patterns as $key=>$row)
    @if(isset($key))
        <span class="chkbox-fld mr-5">
        <label>
            {!! Form::checkbox ("ptn_id[$key]",$key,old("ptn_id[$key]" , isset("ptn_id[$key]")  ?  "ptn_id[$key]" :  1 )) !!} <---ここの記述
            <span class="chkbox-fld-txt">{{ $row }}</span>
        </label>
        </span>
    @endif
@endforeach

下記のように書くとエラーは出ませんが初回時、デフォルトでチェックONになりません。
履歴がない場合、デフォルト値はチェックONにしておきたいと考えております。


Form::checkbox ("ptn_id[$key]",$key,old("ptn_id[$key]"))

自分で試したこと

issetはDB項目(変数)にしか使えないのでしょうか?(エラーコメントから想像)
エラーにあるようにisnullでの書き方もいろいろ試しましたが、うまくいきませんでした。

どうぞよろしくお願いいたします。

0

1Answer

自己レスです

{!! Form::checkbox ("ptn_id[$key]",$key,old("ptn_id[$key]" , isset($dev_patterns[$key])  ?  $dev_patterns[$key] :  1    )) !!}

と記載することでうまくいった?ように見えます。
取り急ぎいったんクローズします。

0Like

Your answer might help someone💌