将数据共享到Laravel中没有路由的标头

时间:2019-05-16 01:36:13

标签: php laravel laravel-5 laravel-blade

在Laravel中,我将以这种方式创建视图。

Route -> Controller -> Blade to be displayed.

意思是我将创建路由并将其指向一个控制器,该控制器将返回我的刀片视图。任何日期都可以通过控制器传递,例如:

return view('layouts.cart')->with('cartDetails', $displayCart);

我的问题是,如果该视图没有路由,如何将数据传递到所有页面使用的标题?

例如,我有一个主刀片页面,其中包含:

header.blade.php

a different body page each time

footer.blade.php

我希望header.blade.php包含一些应显示在所有页面中的数据。我可以通过调用路由并使用ajax显示数据来做到这一点,但我想知道是否存在Laravelish方法。

编辑:

View::Share是唯一的选择吗?

1 个答案:

答案 0 :(得分:1)

是的,View::share是完成所需内容的一种方法。来自docs

  

使用所有视图共享数据

     

有时,您可能需要与所有视图共享一条数据   由您的应用程序呈现。您可以使用视图来这样做   门面的share方法。通常,您应该致电share   在服务提供商的boot方法中。您可以随意将它们添加到   AppServiceProvider或生成单独的服务提供商以   安置他们:

<?php

namespace App\Providers;

use Illuminate\Support\Facades\View;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }

    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        View::share('key', 'value');
    }
}

替代

鉴于您希望在许多视图中共享相同的数据,特别是使用header.blade.php(我认为是不完整的)的事实,您可以include将文件中的数据插入其中在您的主版式中。