【问题标题】:Laravel 4: how can I put data into every view?Laravel 4:如何将数据放入每个视图中?
【发布时间】:2013-02-11 01:46:23
【问题描述】:

我有一个应用程序需要从数据库中为每个视图/请求获取菜单。我该怎么做?我想将数据放入每个视图中。

我看到有View Composers,但我不能只做View::composer('*', ...)

【问题讨论】:

    标签: laravel laravel-4


    【解决方案1】:

    如果您有默认视图,则可以使用该视图上的视图编辑器来传递菜单。它可能看起来像这样:

        View::composer('layout', function($view)
        {
            $view->with($menu,Menu::get());
        });
    

    这将确保无论何时调用您的 layout 视图,$menu 都将包含您的模型返回的任何内容。

    另外,Laravel 有 View::share('foo',$bar),这将使 $foo 在你的所有视图中都可以访问,并将其设置为 $bar。因此,如果您没有单个视图,您可以利用它来确保您始终可以访问 $menu

    根据你的情况,一种可能比另一种更好

    【讨论】:

    • 太好了,谢谢!请用我的粘贴 (paste.laravel.com/iM8) 更新您的答案,因为这是在 Laravel 4 中执行此操作的方法。
    • 对于其他阅读本文的人,我使用 Blade Layouts (four.laravel.com/docs/templates) 完成此操作,因此我有一个主模板 (master.blade.php),然后每个其他 (基本/页面) 模板扩展这个主模板。因此,使用布局编辑器,我能够将数据放入此主模板,从而放入每个页面。
    猜你喜欢
    • 2013-10-28
    • 1970-01-01
    • 2014-07-21
    • 1970-01-01
    • 2021-01-17
    • 1970-01-01
    • 2017-12-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多