> 当我们想在每个页面都显示一些数据时,应该怎么做呢?难道要每个页面传递一次?这显然是不合理的,查找 Laravel 视图文档发现 `把数据共享给所有视图`,按照此方法,实现共享导航数据的功能。 ### 把数据共享给所有视图 有时候可能需要共享特定的数据给应用程序中所有的视图,那这时候你需要 View Facade 的 share 方法。通常需要将所有 share 方法的调用代码放到 服务提供者 的 boot 方法中,此时你可以选择使用 AppServiceProvider 或创建独立的 服务提供者 。 示例代码如下: shareNavi(); } public function shareNavi() { $navis = $this->menu(); View::share(['navis'=>$navis]); } public function menu() { $menu = array('index'=>'首页','post'=>'文章'); } } ### 注册提供者 所有的服务提供者都在 `config/app.php` 配置文件中被注册。这个文件包含了一个 `providers` 数组,你可以在其中列出你所有服务提供者的类名。此数组默认会列出一组 Laravel 的核心服务提供者。这些提供者启动 Laravel 的核心组件,如邮件寄送者、队列、缓存等。 将你的提供者加入此数组来注册服务提供者: 'providers' => [ // 其它的服务提供者 App\Providers\NavigationServiceProvider::class, ],