Blade 视图组件的 Laravel 路由模型绑定

Posted

技术标签:

【中文标题】Blade 视图组件的 Laravel 路由模型绑定【英文标题】:Laravel route model binding for Blade view component 【发布时间】:2021-03-22 22:01:15 【问题描述】:

在我的服务提供者中,我在路由中绑定了事件模型。

Route::model('event', Event::class);

然后我创建以下路线。

Route::view('/events/event/overview', 'cp.event-overview')

在这个视图中,我称之为刀片组件,看起来像这样。

class EventHeader extends Component

    public $event;

    public function __construct(Event $event)
    
        $this->event = $event;
        dd($event);
    

代码返回一个空模型(存在:false)。但是如果我做同样的事情并将路由转发到控制器,那么它是否有效。有没有办法将模型注入到 Blade 组件中?

【问题讨论】:

如何将数据传递给组件? 我没有传递任何数据。我想使用依赖注入器。 laravel.com/docs/8.x/blade#additional-dependencies 如果您想加载具体模型,我假设您无法避免将事件实例传递给组件。我不是这方面的专家,但视图不在路由绑定的上下文中,即仅在控制器生命周期中 比如读取传递数据到组件 【参考方案1】:

假设您在 blade 视图中调用组件,您可以像这样传递 Event

<event-header :event="request()->route('event')"></event-header>

【讨论】:

以上是关于Blade 视图组件的 Laravel 路由模型绑定的主要内容,如果未能解决你的问题,请参考以下文章

路由器视图未加载

Laravel 查看子文件夹路由

Vue 组件渲染而不是 Laravel Blade 模板

Laravel - 大量使用 Blade 渲染视图的访问器(修改器)

如何从多个控制器获取数据到 Laravel Blade 视图中?

Laravel 5.1 Ajax 从 Blade View 获取 html