刀片if(isset)不起作用Laravel

时间:2015-02-13 10:32:06

标签: php laravel

您好我正在尝试使用刀片版本检查变量是否已设置。但原始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)

10 个答案:

答案 0 :(得分:38)

{{ $usersType or '' }}工作正常。这里的问题是你的foreach循环:

@foreach( $usersType as $type )
    <input type="checkbox" class='default-checkbox'> <span>{{ $type->type }}</span> &nbsp; 
@endforeach

我建议你把它放在@if()

@if(isset($usersType))
    @foreach( $usersType as $type )
        <input type="checkbox" class='default-checkbox'> <span>{{ $type->type }}</span> &nbsp; 
    @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 }}"

重要的是,如果尝试访问对象的属性,则括号放在对象变量而非整个对象周围。

https://laravel.com/docs/5.8/helpers#method-optional

答案 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