Blade if(isset) 不工作 Laravel
Blade if(isset) is not working Laravel
您好,我正在尝试使用 blade 版本检查变量是否已设置。但是 原始 php 可以使用 但 blade 版本不能使用 。有帮助吗?
控制器:
public function viewRegistrationForm()
{
$usersType = UsersType::all();
return View::make('search')->with('usersType',$usersType);
}
查看:
{{ $usersType or '' }}
显示错误:
未定义变量:usersType(视图:C:\xampp\htdocs\clubhub\app\views\search.blade.php)
如果要回显,请使用 3 个花括号
{{{ $usersType or '' }}}
{{ $usersType or '' }}
工作正常。这里的问题是你的 foreach 循环:
@foreach( $usersType as $type )
<input type="checkbox" class='default-checkbox'> <span>{{ $type->type }}</span>
@endforeach
我建议你把它放在 @if()
:
@if(isset($usersType))
@foreach( $usersType as $type )
<input type="checkbox" class='default-checkbox'> <span>{{ $type->type }}</span>
@endforeach
@endif
您也可以使用@forelse。简单易行。
@forelse ($users as $user)
<li>{{ $user->name }}</li>
@empty
<p>No users</p>
@endforelse
@isset($usersType)
// $usersType is defined and is not null...
@endisset
详细解释参考documentation:
In addition to the conditional directives already discussed, the @isset
and @empty
directives may be used as convenient shortcuts for their respective PHP functions
@forelse ($users as $user)
<li>{{ $user->name }}</li>
@empty
<p>No users</p>
@endforelse
我使用 optional()
助手解决了这个问题。使用此处的示例将是:
{{ optional($usersType) }}
一个更复杂的例子是,如果像我一样,假设您正在尝试在使用 [=13 的视图中访问空对象(即 $users->type
)的 属性 =] 助手.
value="{{ old('type', optional($users)->type }}"
重要的是要注意,如果尝试访问对象的 属性,括号围绕对象变量而不是整个对象。
您可以轻松使用三元运算符:
{{ $usersType ? $usersType : '' }}
在控制器上
$data = ModelName::select('name')->get()->toArray();
return view('viewtemplatename')->with('yourVariableName', $data);
在 Blade 文件上
@if(isset($yourVariableName))
//do you work here
@endif
使用?? , 'or' 更新版本不支持。
{{ $usersType or '' }} ❎
{{ $usersType ?? '' }} ✅
改用??
或{{ $usersType ?? '' }}
您好,我正在尝试使用 blade 版本检查变量是否已设置。但是 原始 php 可以使用 但 blade 版本不能使用 。有帮助吗?
控制器:
public function viewRegistrationForm()
{
$usersType = UsersType::all();
return View::make('search')->with('usersType',$usersType);
}
查看:
{{ $usersType or '' }}
显示错误:
未定义变量:usersType(视图:C:\xampp\htdocs\clubhub\app\views\search.blade.php)
如果要回显,请使用 3 个花括号
{{{ $usersType or '' }}}
{{ $usersType or '' }}
工作正常。这里的问题是你的 foreach 循环:
@foreach( $usersType as $type )
<input type="checkbox" class='default-checkbox'> <span>{{ $type->type }}</span>
@endforeach
我建议你把它放在 @if()
:
@if(isset($usersType))
@foreach( $usersType as $type )
<input type="checkbox" class='default-checkbox'> <span>{{ $type->type }}</span>
@endforeach
@endif
您也可以使用@forelse。简单易行。
@forelse ($users as $user)
<li>{{ $user->name }}</li>
@empty
<p>No users</p>
@endforelse
@isset($usersType)
// $usersType is defined and is not null...
@endisset
详细解释参考documentation:
In addition to the conditional directives already discussed, the
@isset
and@empty
directives may be used as convenient shortcuts for their respective PHP functions
@forelse ($users as $user)
<li>{{ $user->name }}</li>
@empty
<p>No users</p>
@endforelse
我使用 optional()
助手解决了这个问题。使用此处的示例将是:
{{ optional($usersType) }}
一个更复杂的例子是,如果像我一样,假设您正在尝试在使用 [=13 的视图中访问空对象(即 $users->type
)的 属性 =] 助手.
value="{{ old('type', optional($users)->type }}"
重要的是要注意,如果尝试访问对象的 属性,括号围绕对象变量而不是整个对象。
您可以轻松使用三元运算符:
{{ $usersType ? $usersType : '' }}
在控制器上
$data = ModelName::select('name')->get()->toArray();
return view('viewtemplatename')->with('yourVariableName', $data);
在 Blade 文件上
@if(isset($yourVariableName))
//do you work here
@endif
使用?? , 'or' 更新版本不支持。
{{ $usersType or '' }} ❎
{{ $usersType ?? '' }} ✅
改用??
或{{ $usersType ?? '' }}