【问题标题】:Laravel - how to create (anonymous) Dynamic Blade Components in ViewsLaravel - 如何在视图中创建(匿名)动态刀片组件
【发布时间】:2020-09-28 19:50:36
【问题描述】:

使用 Laravel 7 和新添加的刀片组件--

我有一些返回数组的动态字段。在数组内部包含存储为“布局”的每个“组件”,我有一个完全以组件类命名的组件。在我的基本视图中,我正在循环遍历数组并渲染组件:

@if ($page->content)
    //@dd($page->content):
    {{-- array:1 [▼
        0 => {#425 ▼
            +"layout": "wysiwyg"
            +"key": "W0yC0KtNgPV8N4ua"
            +"attributes": {#1303 ▼
            +"alignment": "default"
            +"background_color": "default"
            +"text": "<h1>Hello World</h1>"
            }
        }
        ] --}}
    @foreach ($page->content as $content)
        <x-{{ $content->layout }} :content="$content"/>
    @endforeach
@endif

但是,这不会呈现任何内容(它是空白的)。已编译刀片的源代码显示&lt;x-wysiwyg :component="$content"/&gt;,因此它的行为就像根本没有编译一样。但是,如果我明确更新我的 foreach 循环组件内容:&lt;x-wysiwyg :content="$content"/&gt;,它会工作并呈现组件。

如何动态加载带有值的组件?

【问题讨论】:

  • 我认为这将是 Laravel 解析刀片模板的顺序问题。如果你输入旧式布局@include 是否有效?

标签: laravel laravel-blade laravel-7


【解决方案1】:

这在 Laravel 7 中实际上是不可能的,但很快就会在 Laravel 8 中实现:

https://twitter.com/taylorotwell/status/1265681297286082562

<x-dynamic-component :component="$componentName" class="mt-4" />

编辑:现已发布 - https://laravel.com/docs/8.x/blade#dynamic-components

【讨论】:

  • 这是否适用于匿名组件?
  • @EugenevanderMerwe 是的,laravel.com/docs/8.x/blade#dynamic-components
  • 非常感谢。当我的组件位于子目录中时我很挣扎,但是当我将它们移动到组件文件夹的根目录时它起作用了。
猜你喜欢
  • 2021-11-29
  • 2019-03-18
  • 2018-08-01
  • 1970-01-01
  • 2016-09-26
  • 1970-01-01
  • 2016-05-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多