Laravel 具有条件默认值的 old() 指令

Laravel old() directive with conditional default value

我正在使用 Laravel 5.8,并且有几个输入字段,当然每个 value="" 标签上都有一个 old() 指令。

这是我现在的例子:

<input class="form-control input-md" name="contact_name" type="text" value="@if($edit){{ $ad->contact_name }}@else{{ old('contact_name')}}@endif">

我现在如果我使用这个:{{ old('contact_name', "John")}}

默认值为 "John"

但我想检查是否有用户登录并使用用户联系人姓名预填充该输入。

我的想法是这样的:

value="@if($edit){{ $ad->contact_name }}@else{{ old('contact_name', Auth::user()->name)}}@endif

而且有效!但是当然,它会抛出: Trying to get property 'name' 当我得到隐身 window.

那么,我该如何评估登录用户并预填呢?

您可以使用 optional 助手:

{{ old('contact_name', optional(Auth::user())->name) }}