在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
是唯一的选择吗?
答案 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将文件中的数据插入其中在您的主版式中。