【问题标题】:How to reuse a component in Laravel WITH its controller functionality如何在 Laravel 中重用组件及其控制器功能
【发布时间】:2023-04-10 19:22:01
【问题描述】:

我做了什么

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

我想做什么

我想在其他页面(在我的情况下:仪表板)上显示此列表,其中列表只是其他页面的一个组件。

最佳实践是什么?当我输入/dashboard 时,我当然会得到一个错误,因为我包含的 stuff-list 没有来自它的控制器的数据。

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

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

我该怎么做? 感谢您的帮助!

【问题讨论】:

标签: php laravel laravel-5.2


【解决方案1】:

你考虑过Service Injection吗?如果您使用刀片模板,那么您可以利用它。

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

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

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

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

【讨论】:

  • 也许对这个问题发表评论?
猜你喜欢
  • 1970-01-01
  • 2018-05-11
  • 2016-06-07
  • 2016-10-08
  • 2013-11-05
  • 2016-02-04
  • 1970-01-01
  • 2017-12-22
  • 2018-05-27
相关资源
最近更新 更多