php - 使模型在 Laravel 中全局可用于布局

标签 php laravel laravel-4

我刚刚开始使用 Laravel,我正在建立一个快速的博客网站作为练习。

我有一个包含帖子和内容的帖子模型。我可以列出帖子、显示单个帖子和创建帖子。

我已经创建了一个与帖子相关的类别表和模型(帖子属于类别)。我想要一个下拉菜单,列出我的导航布局中跨越整个应用程序的所有类别。

允许 View 在整个应用程序中访问该数据的最佳做法是什么?需要将以下内容添加到每个 Controller 方法似乎是错误的,以便我可以传递该数据。

$categories = Category::all(); 

谢谢!

最佳答案

这就是View Composers是为了。

您可以注册一个回调函数,每次渲染特定 View 时都会调用该回调函数:

View::composer('layout', function($view){
   $view->with('categories', Category::all());
});

您可以将这段代码放在 app/filters.php 或创建一个新的 app/composers.php 并将其包含在 app/start 的末尾/global.php 包含:

require app_path().'/composers.php';

关于php - 使模型在 Laravel 中全局可用于布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28332196/

相关文章:

php - 访问 stdClass 对象的变量

php - 为目录树动态创建下载链接

php - 在 php 中处理 excel 文件

mysql - SQL无法在laravel Controller 中更新

php - 检查列是否存在于 Laravel 模型的表中,然后应用条件

javascript - ajax函数中获取参数

mysql - 哪个是合适的 sql 查询?

mysql - Laravel Eloquent 每隔 N 行跳过一次

php - 'c :/wamp64/bin/php/php7. 0.10/ext/php_oci8_12c.dll' - %1 不是有效的 win32 应用程序

php - 重复的返回顶部按钮