如何将数据传递给Laravel 5中的所有视图?

如何将数据传递给Laravel 5中的所有视图?

我想在Laravel 5应用程序的所有视图中都可以访问一些默认数据。

我试图搜索它,但只找到Laravel 4的结果。我在这里阅读了文档“与所有视图共享数据” 但我无法理解该怎么做。下面的代码应该放在哪里?

View::share('data', [1, 2, 3]);

谢谢你的帮助。


大话西游666
浏览 540回答 3
3回答

慕婉清6462132

您可以创建自己的服务提供商(ViewServiceProvider名称很常见),也可以使用现有服务提供商AppServiceProvider。在您选择的提供程序中,将您的代码放在引导方法中。public function boot() {     view()->share('data', [1, 2, 3]);}这将使$data您的所有视图中都可以访问变量。如果您更愿意使用Facade而不是帮助程序,请更改view()->为View::但不要忘记use View;在文件的顶部。

摇曳的蔷薇

我发现这是最简单的一个。创建一个新的提供程序并使用'*'通配符将其附加到所有视图。也适用于5.3 :-)<?phpnamespace&nbsp;App\Providers;use&nbsp;Illuminate\Http\Request;use&nbsp;Illuminate\Support\ServiceProvider;class&nbsp;ViewServiceProvider&nbsp;extends&nbsp;ServiceProvider{ &nbsp;&nbsp;&nbsp;&nbsp;/** &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Bootstrap&nbsp;the&nbsp;application&nbsp;services. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;void &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/ &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;boot() &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;view()->composer('*',&nbsp;function&nbsp;($view) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$user&nbsp;=&nbsp;request()->user(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$view->with('user',&nbsp;$user); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}); &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;/** &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Register&nbsp;the&nbsp;application&nbsp;services. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;void &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/ &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;register() &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// &nbsp;&nbsp;&nbsp;&nbsp;}}
打开App,查看更多内容
随时随地看视频慕课网APP