【问题标题】:Check if $slot is empty in laravel blade component检查 laravel 刀片组件中的 $slot 是否为空
【发布时间】:2021-11-02 18:07:57
【问题描述】:

我有一个输出 $slot 的组件。但我想做这样的事情:

组件

<x-alert></x-alert>
<div>
@if ($slot)
    {{ $slot }}
@else
    No available content
@endif
</div>

【问题讨论】:

  • 这段代码到底有什么问题?
  • 它总是运行 if 条件而不是 else 条件,即使我没有向其中添加任何项目。
  • 变量 $slot 的类型是什么?是数组吗?
  • 不是,它基本上是我在组件的开始和结束标记之间键入的任何内容。

标签: laravel conditional-statements laravel-blade


【解决方案1】:

试试这个:

<div>
@if (isset($slot) && $slot != null )
    {{ $slot }}
@else
    No available content
@endif
</div>

【讨论】:

    【解决方案2】:

    您可以使用isNotEmpty 方法:

    <div>
    @if ($slot->isNotEmpty())
        {{ $slot }}
    @else
        No available content
    @endif
    </div>
    

    【讨论】:

      【解决方案3】:

      laravel 组件中的变量$slot 准备为Illuminate\Support\HtmlString 类型的对象
      所以需要像这样检查:

      <div>
      @if(strlen($slot->toHtml()) != 0)
          {{$slot}}
      @else
          slot is empty
      @endif
      

      【讨论】:

        猜你喜欢
        • 2015-02-13
        • 2019-01-10
        • 2021-01-13
        • 2015-12-15
        • 2019-05-12
        • 1970-01-01
        • 2016-04-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多