您好我正在尝试使用刀片版本检查变量是否已设置。但原始php正在运行,但刀片版本不是。有什么帮助吗?
控制器:
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)
答案 0 :(得分:38)
{{ $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
答案 1 :(得分:8)
@isset($usersType)
// $usersType is defined and is not null...
@endisset
答案 2 :(得分:7)
使用?? ,'或'在更新版本中不受支持。
{{ $usersType or '' }} ❎
{{ $usersType ?? '' }} ✅
答案 3 :(得分:5)
如果要回显
,请使用3个大括号{{{ $usersType or '' }}}
答案 4 :(得分:1)
@forelse ($users as $user)
<li>{{ $user->name }}</li>
@empty
<p>No users</p>
@endforelse
答案 5 :(得分:1)
在控制器上
$data = ModelName::select('name')->get()->toArray();
return view('viewtemplatename')->with('yourVariableName', $data);
在刀片文件上
@if(isset($yourVariableName))
//do you work here
@endif
答案 6 :(得分:1)
使用??
或{{ $usersType ?? '' }}
答案 7 :(得分:0)
我使用optional()
帮助程序解决了这个问题。使用此处的示例将是:
{{ optional($usersType) }}
一个更复杂的示例是,如果像我一样,您说您正在使用$users->type
助手的视图中尝试访问空对象(即old()
)的属性。
value="{{ old('type', optional($users)->type }}"
重要的是,如果尝试访问对象的属性,则括号放在对象变量而非整个对象周围。
答案 8 :(得分:0)
您可以轻松使用三元运算符:
{{ $usersType ? $usersType : '' }}
答案 9 :(得分:-1)
在php中进行新的更新后
// if it does not exist.
$username = $_GET['user'] ?? 'nobody';
// This is equivalent to:
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';
检查参考:https://laravel-news.com/blade-templates-null-coalesce-operator