Blade Laravel 中的默认变量值

Seb*_*lan 1 laravel blade laravel-5 laravel-blade

如何为刀片部分中的变量设置默认值?

例如,我有 2 个变量:

  • 软删除
  • 删除

女巫我希望默认情况下是真的。

@if($softDelete)
    <span data-toggle="tooltip" title="Publish">
        <a href="#delete-{{ $id }}" class="btn btn-default btn-xs btn-flat">
            <i class="fa fa-check"></i>
        </a>
    </span>
@endif

@if($delete)
    <span data-toggle="tooltip" title="Delete">
        <a href="#delete-{{ $id }}" class="btn btn-danger btn-xs btn-delete btn-flat details" data-toggle="modal" data-target="#delete_modal">
            <i class="fa fa-trash"></i>
        </a>
    </span>
@endif
Run Code Online (Sandbox Code Playgroud)

当我从控制器发送视图以更改某些变量的值时,具体取决于我需要的情况。

return view('platform.pages.blocks.property_table_actions',
    [
        'id' => $model->id,
        'delete' => false
    ]);
Run Code Online (Sandbox Code Playgroud)

我尝试与提供商合作:

public function composeActionButtons()
{
    view()->composer('platform.pages.blocks.property_table_actions', function ($view) {
        $view
            ->with('softDelete', true)
            ->with('delete', true)
            ->with('view', true)
            ->with('edit', true);
    });
}
Run Code Online (Sandbox Code Playgroud)

但覆盖来自控制器的错误值。

小智 5

有时您可能希望回显一个变量,但您不确定该变量是否已设置。基本上,你想这样做:

{{ isset($name) ? $name : '默认' }}

但是,Blade 允许您使用以下方便的快捷方式,而不是编写三元语句:

{{ $name 或“默认”}}


来自laravel docs..如果变量存在,它应该检查isset..如果不存在则显示默认值