我想在输入框中展示旧的输入值。如果没有旧的输入值,则显示其他变量:
value="{{ old('salary_' . $employee->id) or 'Default' }}"
但是当没有旧输入时,它会给我1而不是默认值!
我认为问题与连接有关,但我不知道如何解决!?
我想在输入框中展示旧的输入值。如果没有旧的输入值,则显示其他变量:
value="{{ old('salary_' . $employee->id) or 'Default' }}"
但是当没有旧输入时,它会给我1而不是默认值!
我认为问题与连接有关,但我不知道如何解决!?
or
是在PHP中的比较运算符,因此你的代码会计算为 true
,或1。你需使用三元条件语句 if
。
如前所述,在Blade中,or
可用作三元条件语句的简写。
但是,你可以(而且应该)将默认值作为第二个参数传递给函数,像这样:
value="{{ old('salary_' . $employee->id, 'Default') }}"
{{ old('field_name') ?? $model->field_name ?? 'default' }}
对于复选框的选中属性,请使用以下代码(如果默认值为false):
{{ (old() ? old('field_name', false) : $model->field_name ?? false) ? 'checked' : '' }}
Construction {{ $something or 'default'}}
仅适用于变量
您可以使用:
old($key, $defaultValue)
如 Laravel 文档所述:“如果你在 Blade 模板中显示旧的输入,使用 old 助手更方便:”。 因此,如果您需要添加/编辑数据表单(当您需要在编辑模式下使用编辑表单进行添加和编辑时,您需要使用从模型(数据库)加载的数据)以显示模型的值(通过控制器),您可以使用以下内容:
name="some_value" value="{{ $some_value or old('some_value', $the_value) }}"
"some_value_from_model"变量名在视图数组中的哪里。 在这种情况下,首先将使用$some_value设置到"value"中,如果没有,则尝试使用旧值(来自名称为"some_value"的请求)如果没有旧值,则应该使用''。
感谢WoodyDRN的评论。
试试这个:
value="{{ old('salary_' . $employee->id) ?? 'Default' }}"
解释:
如果存在旧值,则将其设置为旧值,否则将设置为“Default”。
试试这个:
<textarea name="alamat" id="" class="form-control" placeholder="Alamat">{{ old('alamat').@$biodata->alamat }}</textarea>
{{ $value or $default }}
是Blade中执行三元运算的简便方法(参考链接)。因此,我并不确信这样做是正确的,但它更加清晰易懂! - Chris Forrence