如何在Laravel中重用其控制器功能的组件

时间:2016-05-06 13:23:25

标签: php laravel laravel-5.2

我做了什么

我有一个从我的数据库中提取并显示在列表中的内容列表。我们称之为“ stuff-list ”。当我''/stufflist时,路由器会显示此列表。连接的控制器获取数据并将其传递给模板。

我想做什么

我想在其他页面上显示此列表(在我的情况下:信息中心),其中列表只是其他页面旁边的组件。

最佳做法是什么?当我输入/dashboard时,我当然会收到错误,因为 stuff-list 我包括那里没有来自它的控制器的数据。

我不想为每个使用 stuff-list 的模板在每个控制器中实现数据的获取。我是否必须实现某种存储库并在每个模板中使用它每个模板的控制器,包括 stuff-list ?还是有更好的方法吗?

我想要做的是创建一个显示东西的组件和一个绑定到该组件的控制器。每当我在任何页面上包含这个组件(显示东西)时,它都应该包含在它背后的所有逻辑中。

我该怎么做? 谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

您是否考虑过 Service Injection ?如果您正在使用刀片模板,那么您可以利用它。

假设您与数据库的交互以获取stuff-list是在模型或专用查询类中的方法中,您可以在刀片模板中执行以下操作:

@inject('stuffList', 'App\Queries\StuffList')

<div>
    Monthly Revenue: {{ $stuffList->get() }}.
</div>

然后,您可以将使用它的部分提取为部分,然后使用@include see: Including sub views将其拉入主模板或任何刀片文件