【问题标题】:Shared sections in master layout containing db data包含数据库数据的主布局中的共享部分
【发布时间】:2016-01-28 14:53:42
【问题描述】:

在我的 Laravel 5.1 应用程序中,我有一个带有共享部分的主布局,比如说一个包含 5 个最新站点帖子列表的侧边栏。部分内容是动态的(根据数据库查询详细说明),但在每个网站页面上都是相同的。

为了实现这一点,在主布局中我可以@include 一个包含侧边栏代码的子视图,但这仍然意味着在每个控制器操作中重复相同的数据库查询,这是很多代码重复。我敢肯定有一个更聪明的方法来获得这个,但我想不通。任何帮助将非常感激。

【问题讨论】:

  • 我认为你正在寻找缓存.. 如果你不缓存你的查询而不是在每个请求中都会有 db 查询

标签: php laravel laravel-5 laravel-5.1 laravel-blade


【解决方案1】:

您可以在子视图下see here 将数据传递到包含中,例如

@include('view.name', ['some' => 'data'])

那么您只需将数据传递到主布局中即可。

编辑:View Composers 似乎是您正在寻找的东西

【讨论】:

  • 感谢您的回复。我的问题不是将数据传递给布局,而是避免在控制器操作中重复代码。我应该将查询代码放在哪里,以便在特定控制器的每个操作上执行?
  • 为什么要在控制器的每一个动作上使用它?你可以使用中间件并以这种方式附加它,你可以创建一个 viewcomposer,我很确定它会的。
  • 我查看了视图作曲家,这正是我所寻找的。感谢您的提示!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-26
  • 1970-01-01
相关资源
最近更新 更多