代码之家  ›  专栏  ›  技术社区  ›  bart

如何避免在Laravel Blade模板中使用isset()?

  •  0
  • bart  · 技术社区  · 2 年前

    我有一个像这样的Blade文件:

    <a href="{{ $url }}" class="{{ $wrapperClass }}">
      <p class="{{ $paraClass }}">{{ $title }}</p>
    </a>
    

    并这样称呼它:

    <x-mycomponent
      url="{{ $book->url }}"
      title={{ $book->title }}
      wrapper-class=""
      para-class = ""
    />
    

    工作得很好,但每当我想向组件添加变量时,我都需要将其添加到调用该组件的每个文件中。

    如何在不指定所有变量和不使用的情况下编写它 isset() {{ $myvar ?? '' }} 在Blade中?这样地:

    <x-mycomponent
      url="{{ $book->url }}"
      title={{ $book->title }}
    />
    
    1 回复  |  直到 2 年前
        1
  •  3
  •   Ehsan Faramarz    2 年前

    您可以为属性分配默认值,如下面的代码:

    @props([
        "product" => null
    ])
    
    <a href="#">{{ $product }}</a>
    

    然后,您可以通过以下两种方式调用您的组件:

    <x-mycomponent />
    <x-mycomponent product="$product" />
    

    笔记 @props 是一个Blade指令,允许您将数据从父组件传递到子组件。