当我们需要继承已经有交互内容的视图模板时(如我们的导航栏),每次继承这个视图模板时候都需要向这个视图模板中传递参数,但是这样太麻烦了。我们可以使用视图模板的数据共享来实现。
与所有视图共享数据
如果需要共享一段数据给应用程序的所有视图,你可以在服务提供器的 boot
方法中调用视图 Facade 的 share
方法。例如,可以将它们添加到 AppServiceProvider
或者为它们生成一个单独的服务提供器:
<?php
namespace App\Providers;
use Illuminate\Support\Facades\View;
class AppServiceProvider extends ServiceProvider
{
/**
* 引导任何应用程序服务。
*
* @return void
*/
public function boot()
{
$columns = Que_Column::select('name')->get();
view()->share('nav', $columns);
}
/**
* 注册服务提供商。
*
* @return void
*/
public function register()
{
//
}
}
这样在任何视图XXX.blade.php中都可以调用{{ $nav}}了