Laravel 6 null coalescing operator 在调用方法时给出 Undefined variable: user?
Laravel 6 null coalescing operator gives Undefined variable: user when calling a method on it?
我正在努力让它工作。
<option value="{{$role->id}}" {{ (collect(old('userrole') ?? $user->roles()->pluck('id')->implode(", ") ?? '')->contains($role->id)) ? 'selected':'' }}>{{$role->name}}</option>
由于某种原因,它不起作用。它返回错误:Undefined variable: user.
有什么帮助吗?
null-coalescing 运算符 ??
将检查最终结果是否为 null - 它不会考虑任何可能未声明的变量以获得该结果。
因此,您可以使用三元运算符来查看是否为该表达式设置了 $roles
值。
{{ (collect(
old('userrole')
?? (isset($user)
? $user->roles()->pluck('id')->implode(", ")
: ''
)
)->contains($role->id))
? 'selected'
: '' }}
old()
帮助程序还需要第二个参数,因为 "default" 如果该值不存在,您可以使用它。由于您正在寻找单个值,因此可以将使用三元运算符输出 selected
替换为 blade @if
块。
<option value="{{$role->id}}"
@if (collect(old('userrole', (isset($user) ? $user->roles()->pluck('id')->implode(", ") : ''))->contains($role->id)))
selected
@endif
>{{$role->name}}</option>
您还可以通过在 object 本身上使用 contains()
来减少代码中的 som 混乱(无需 pluck()
id`)。
<option value="{{ $role->id }}"
@if (collect(old('userrole', (isset($user) ? $user->roles())->contains($role->id)))
selected
@endif
>{{ $role->name }}</option>
我正在努力让它工作。
<option value="{{$role->id}}" {{ (collect(old('userrole') ?? $user->roles()->pluck('id')->implode(", ") ?? '')->contains($role->id)) ? 'selected':'' }}>{{$role->name}}</option>
由于某种原因,它不起作用。它返回错误:Undefined variable: user.
有什么帮助吗?
null-coalescing 运算符 ??
将检查最终结果是否为 null - 它不会考虑任何可能未声明的变量以获得该结果。
因此,您可以使用三元运算符来查看是否为该表达式设置了 $roles
值。
{{ (collect(
old('userrole')
?? (isset($user)
? $user->roles()->pluck('id')->implode(", ")
: ''
)
)->contains($role->id))
? 'selected'
: '' }}
old()
帮助程序还需要第二个参数,因为 "default" 如果该值不存在,您可以使用它。由于您正在寻找单个值,因此可以将使用三元运算符输出 selected
替换为 blade @if
块。
<option value="{{$role->id}}"
@if (collect(old('userrole', (isset($user) ? $user->roles()->pluck('id')->implode(", ") : ''))->contains($role->id)))
selected
@endif
>{{$role->name}}</option>
您还可以通过在 object 本身上使用 contains()
来减少代码中的 som 混乱(无需 pluck()
id`)。
<option value="{{ $role->id }}"
@if (collect(old('userrole', (isset($user) ? $user->roles())->contains($role->id)))
selected
@endif
>{{ $role->name }}</option>