Laravel blade“旧输入还是默认变量”?

我想在输入值中显示旧的输入。如果没有旧的输入,则显示其他变量:

value="{{ old('salary_' . $employee->id) or 'Default' }}"

但是当没有旧的输入时,它会给我1而不是默认值!

我认为这个问题与串联有关,但我不知道如何解决它!?


答案 1

或者是 PHP 中的比较运算符,因此您的代码的计算结果为 true 或 1。你想要的是一个三元 if 语句。

如前所述,可以在刀片中用作三元 if 语句的简写。or

但是你可以(也应该)将默认值作为第二个参数传递给函数,如下所示:

value="{{ old('salary_' . $employee->id, 'Default') }}"

答案 2

您可以使用以下代码(对于 PHP 7):

{{ old('field_name') ?? $model->field_name ?? 'default' }}

对于复选框选中的属性,请使用代码(如果默认值为 false):

{{ (old() ? old('field_name', false) : $model->field_name ?? false) ? 'checked' : '' }}

构造仅适用于变量{{ $something or 'default'}}


推荐