考虑以下路线:

Route::get('/', function()
{
    $categories = Category::all()->toHierarchy();

    $stats = array(
        'total_users' => User::all()->count(),
        'total_services' => 5,
        'total_orders' => 2,
        'latest_service' => '1 hour ago'
    );

    return View::make('homepage')
                                ->with('categories', $categories)
                                ->with('stats', $stats);
});

但是我在所有视图中都需要$ categories和$ stats! 我不想在每个视图或控制器中重复数据库调用,我将如何实现它?

#1楼 票数:4 已采纳

您正在寻找View Composers 它们使您可以在渲染某个视图(或所有通过*视图)时运行一些代码。

View::composer('*', function($view){
    $categories = Category::all()->toHierarchy();

    $stats = array(
        'total_users' => User::all()->count(),
        'total_services' => 5,
        'total_orders' => 2,
        'latest_service' => '1 hour ago'
    );
    $view->with('categories', $categories)
         ->with('stats', $stats);
}

您可以将此代码放在app/filters.php或创建一个新文件app/composers.php并通过添加require app_path().'/composers.php';包含它require app_path().'/composers.php'; app/start/global.php的末尾

#2楼 票数:0

您可以使用简单的方法:

View::share('data', $data);
View::make....

用于将变量传递给所有视图。

  ask by translate from so

未解决问题?本站智能推荐:

2回复

Laravel:如何与父视图共享变量

我的当前状态是我的Laravel应用程序中有多个项目(存储在数据库中)。 我确实具有以下网址结构: http://app.com/project/7-exampleproject/news 哪里 https://app.com/project/ {id}-{seostring} /
2回复

laravel5-在控制器之间共享变量(不渲染视图)

我有一个用Laravel开发的小型应用程序,我想在所有控制器之间共享一个变量(远程服务的结果,缓存)。 我阅读了有关ViewComposer的文章,但它们仅在呈现视图(有意义)时才起作用,并且我的应用程序具有许多json响应。 我知道我传统上可以从BaseController扩展我的控制
1回复

Laravel-控制器功能之间共享变量

我是Laravel的新手,正在从事一个简单的项目,在我的控制器(TestController)中,我有两个功能(process和show) 。 我想做的是在函数之间传递$ email变量,因此我可以在show函数中使用它,但是我不知道该怎么做。 调节器 任何帮助,将不胜感激。 提前
1回复

Laravel在多个控制器之间共享变量

我正在使用AppServiceProvider与所有相关视图共享特定的管理数据。 现在我想与所有管理员相关的控制器共享管理数据,以用Auth::guard('admin')->user()->firstname by $admin->firstname替换Auth::gua
1回复

laravel在所有视图中共享变量作为参考

我真的想要一个很简单的东西 1)我从 AppServiceProvider 共享一个全局变量,如下所示 2)我在视图(index.blade.php)中设置了一些属性值,例如blow 3)在另一个视图(contact.blade.php)中,我检查了$css->publicProperty
2回复

如何在主版面和视图之间共享变量

我的Guest模型中有以下静态方法来检索位置1处的所有客人: 我还获得了以下静态方法来检索和显示位置1的来宾人数。 后来我打电话getGuests()在我的GuestController和所有的客人传递给视图guests/index.blade.php在表格中显示的数据。 我还从
2回复

共享变量到Laravel布局

我需要将变量共享给标准 layout.app,但是当我尝试这样做时,刀片中的变量未定义。 有控制器部分: 和 layout.app 部分 我还看到了一种使用 View::share 的方法。 跟他能行吗?
4回复

laravel在控制器中的所有方法之间共享变量

我正在PHP laravel框架中创建一个简单的网站,该网站的顶部导航链接是从数据库动态生成的。 我在家庭控制器操作中生成$ pages变量,并将其传递给布局文件。 我的代码如下: 但是当我尝试访问登录操作时,由于在布局文件中访问了$ pages变量,所以我找不到错误变量$ pages。