Laravel ブレード ファイル内の文字列とオブジェクトを比較するときに、奇妙な問題に遭遇しました。
データベース クエリの結果に応じて文字列 (「N/A」) またはオブジェクトになる変数があり、次の条件チェックがあります。
@if ($a_string_name == 'N/A')
オブジェクトが返された場合、ほとんどのユーザーにとってこの条件は失敗し、else ステートメントの実行が続行されます。
しかし、ある特定のケース (これを再現する方法を説明するのに十分な情報がありません) では、この条件によりエラーがスローされます。
メソッド Illuminate\Support\Collection::__toString() は文字列値を返す必要があります
何が問題なのか、それともこれがlaravel/ブラウザ固有の問題なのかわかりません。
PHP v7.4.22、laravel v6.0
上記の質問に基づいて、変数に特定の値が設定されているかどうかを確認したいと思います。あなたの場合、@if(isset($a_string_name))を使用してみてください。
通常、変数をチェックするために 2 つの PHP メソッドを使用します。
PHP で変数が定義されているかどうかを確認するにはどうすればよいですか? isset() 関数は、変数が設定されているかどうかをチェックします。つまり、変数は NULL ではなく宣言されている必要があります。この関数は、変数が存在し、NULL でない場合は true を返し、それ以外の場合は false を返します。
指定された変数が空かどうかを確認するにはどうすればよいですか? empty() 関数は、変数が空かどうかをチェックします。この関数は、変数が存在し空でない場合は false を返し、それ以外の場合は true を返します。次の値は null と評価されます: 0。
###お役に立てれば。