为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
大话西游666 2019-08-12 15:52:27
如何将数据传递给Laravel 5中的所有视图?我想在Laravel 5应用程序的所有视图中都可以访问一些默认数据。我试图搜索它,但只找到Laravel 4的结果。我在这里阅读了文档“与所有视图共享数据” ,但我无法理解该怎么做。下面的代码应该放在哪里?View::share('data', [1, 2, 3]);谢谢你的帮助。
查看完整描述

3 回答

?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

您可以创建自己的服务提供商ViewServiceProvider名称很常见),也可以使用现有服务提供商AppServiceProvider

在您选择的提供程序中,将您的代码放在引导方法中。

public function boot() {
    view()->share('data', [1, 2, 3]);}

这将使$data您的所有视图中都可以访问变量。

如果您更愿意使用Facade而不是帮助程序,请更改view()->View::但不要忘记use View;在文件的顶部。


查看完整回答
反对 回复 2019-08-12
?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

我发现这是最简单的一个。创建一个新的提供程序并使用'*'通配符将其附加到所有视图。也适用于5.3 :-)

<?phpnamespace App\Providers;use Illuminate\Http\Request;use Illuminate\Support\ServiceProvider;class ViewServiceProvider extends ServiceProvider{
    /**
     * Bootstrap the application services.
     * @return void
     */
    public function boot()
    {
        view()->composer('*', function ($view)
        {
            $user = request()->user();

            $view->with('user', $user);
        });
    }

    /**
     * Register the application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }}


查看完整回答
反对 回复 2019-08-12
  • 3 回答
  • 0 关注
  • 539 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信