Jet*_*açi 29 php concatenation laravel blade laravel-blade
我想在输入值中显示旧输入.如果没有旧输入,则显示其他变量:
value="{{ old('salary_' . $employee->id) or 'Default' }}"
Run Code Online (Sandbox Code Playgroud)
但是当没有旧输入时,它会给我1而不是默认值!
我认为问题与串联有关,但我不知道如何解决它!?
Adu*_*hay 56
or
是PHP中的比较运算符,因此您的代码正在评估true
,或1.您想要的是三元if
语句.
如上所述,or
可以在刀片中用作三元if语句的简写.
但是你可以(而且应该)只将默认值作为函数的第二个参数传递,如下所示:
value="{{ old('salary_' . $employee->id, 'Default') }}"
Run Code Online (Sandbox Code Playgroud)
您可以使用代码(对于 PHP 7):
{{ old('field_name') ?? $model->field_name ?? 'default' }}
Run Code Online (Sandbox Code Playgroud)
对于复选框选中的属性,使用代码(如果默认值为 false):
{{ (old() ? old('field_name', false) : $model->field_name ?? false) ? 'checked' : '' }}
Run Code Online (Sandbox Code Playgroud)
构造{{ $something or 'default'}}
仅适用于变量