入力値に古い入力を表示したい。古い入力がない場合は、他の変数を表示するよりも:
value="{{ old('salary_' . $employee->id) or 'Default' }}"
しかし、古い入力がない場合、デフォルト値の代わりに1が返されます!
問題は連結と関係があると思いますが、それを修正する方法がわかりません!?
or
はPHPの比較演算子であるため、コードはtrue
または1に評価されます。必要なのは3項のif
ステートメントです。
前述のように、or
は、三項ifステートメントの省略形としてブレードで使用できます。
ただし、次のように、デフォルト値を関数の2番目の引数として渡すことができます(そうする必要があります)。
value="{{ old('salary_' . $employee->id, 'Default') }}"
Laravel doc: "Bladeテンプレート内に古い入力を表示している場合、古いヘルパーを使用する方が便利です:"。したがって、データフォームを追加/編集する必要がある場合(編集モードでの追加と編集に編集フォームを使用する必要がある場合、モデル(データベース)から読み込んだデータを使用して、モデルからの値を(コントローラーを介して)表示する必要があります。次を使用できます。
name="some_value" value="{{ $some_value or old('some_value', $the_value) }}"
ここで、ビュー配列の「some_value_from_model」変数名です。この場合、最初は$ some_valueを使用して「値」を設定し、そうでない場合は古い(「some_value」という名前の要求からの値)を使用しようとし、古くない場合は ''にする必要があります中古。
コメントしてくださったWoodyDRNに感謝します。