资讯专栏INFORMATION COLUMN

laravel5.5 视图共享数据

impig33 / 552人阅读

摘要:创建,的引入运行会自动加载,在服务提供器或者新建提供器的方法中调用启动所有应用服务也可使用共享数据片段视图视图合成器是当视图被渲染时的回调函数或类方法,如果你每次渲染视图时都要绑定视图的数据,比如用户登陆信息。

视图间共享数据

视图门面 share() 方法

视图门面 composer() 方法

tips:都是使用 View 门面来访问 IlluminateContractsViewFactory 的底层实现
视图share()

有时需要在所有视图之间共享数据片段,这时候可以使用视图门面的 share 方法。

1,一般情况下,我会在apphttpControllersxx下创建一个基础控制器 BaseController.php

initViewShare();    //视图共享数据
    }
    /**
     *  视图共享数据方法
     */
    public function initViewShare()
    {
        view()->share("action_name",get_action_name()); //当前URL的方法器名
     }
}


//视图使用 
//共享视图一般都是在layout中
{{ $action_name }}
get_action_name() 是自定义的一个函数。

tips:
创建 appHelpersExtmanFun.phpcomposer.jsonautoload引入

 "files":[
     "app/Helpers/ExtmanFun.php"
 ]
运行 composer dump-autoload 会自动加载

2,在 AppServiceProvider 服务提供器(或者新建提供器) 的boot方法中调用share()

share("name","共享数据片段");
    }
}
视图composer()

视图合成器是当视图被渲染时的 回调函数类方法 ,如果你每次渲染视图时都要绑定视图的数据,比如用户登陆信息。可以使用composer() 将逻辑组织到一个多带带的地方。
本例中,我们将在AppServiceProvider服务提供器中注册视图合成器,
提供器代码如下:

composer(
            //"*", "AppHttpViewComposersAuthComposer"
            //["extman.home, welcome"], "AppHttpViewComposersAuthComposer"
            ["extman.*"], "AppHttpViewComposersAuthComposer"
        );

        //使用基于回调函数
        view()->composer("*",function($view){
            $view->with("user",array("name"=>"test","avatar"=>"/path/to/test.jpg"));
        });
    }
other code
}
如果创建一个新的服务提供器来包含视图composer 注册,需要添加该服务提供者到配置文件 config/app.php 的 providers 数组中

到此已经注册了视图合成器,每次渲染 extman目录下所有视图时都会执行 AuthComposer@compose 方法。
定义视图合成器类 AppHttpViewComposersAuthComposer.php

users = $users;
    }

    //绑定数据到视图
    public function compose(View $view)
    {
        $user_info = Auth::user();
        $view->with("motto", $user_info);
        $view->with("count", $this->users->count());
    }
}

视图被渲染前,AuthComposer类的 compose 方法被调用,同时 IlluminateViewView 实例被注入该方法,从而可以使用其 with 方法来绑定数据到视图。

所有的视图合成器都会通过 服务容器 进行解析,所以你可以在视图合成器的构造函数中类型提示需要注入的依赖项。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/30764.html

相关文章

  • Laravel5.5中使用vue渲染具体过程与总结

    摘要:最后一定一定要记住要把组件写在一个为的中否则永远无法渲染哦这是大坑坑了我一宿最后打包打包成功后切记刷新有时候这里也是大坑缓存根本不出最后刷新页面组件渲染成功 首先安装laravel集成环境,不在多余赘述,直接开始配置1.打开layout目录,这里是视图层公用文件,名字随便起,只要你能引入到非公用视图文件中就好,我这里拿main.blade.php为例showImg(https://se...

    changfeng1050 评论0 收藏0
  • laravel5.5手写教程3的基于资源路由的CURD操作(适合初学者)

    摘要:新增一篇新闻新增失败输入不符合要求请输入标题请输入内容新增文章上面代码中的是为了防攻击的,每个表单都必须存在。 本文我将结合简单例子,完成laravel框架下的增删改查,希望会对大家有所帮助。在进行之前,大家应该保证自己的数据库链接无误,artisan命令能正常使用,路由链接无问题。 一、创建控制器、路由避免影响其他路由,我们先注释掉之前联系时编写的所有路由。因为上一章我们已经学会建立...

    olle 评论0 收藏0
  • Laravel5.5新特性--邮件模板可以在浏览器中渲染

    摘要:正在开发的另一种测试方法是将电子邮件呈现给浏览器,以便您可以进行快速更改并获得几乎即时的反馈。 这个是即将在Laravel5.5中发布的新特性 当您构建自定义HTML电子邮件模板时,通常会对所有电子邮件客户端进行测试,并一并测试通常是一件麻烦事。有几个像Litmus这样的工具可以帮助解决这个问题,但服务是昂贵的。 正在开发的另一种测试方法是将电子邮件呈现给浏览器,以便您可以进行快速更改...

    worldligang 评论0 收藏0
  • laravel5.5 + react完成简单的CRUD

    摘要:完成简单的在这篇文章中,我想和大家分享如何在框架中使用来创建应用程序。在这个例子中,您可以学习如何为应用程序构建设置,我还使用请求,获取请求,放入请求和删除请求来插入更新删除应用程序。 laravel5.5 + react完成简单的CRUD 在这篇文章中,我想和大家分享如何在PHP Laravel框架中使用js来创建crud(Create Read Update Delete)应用程序...

    2501207950 评论0 收藏0
  • windows下laravel5.5手写教程1(适合初学者)

    摘要:打开浏览器输入,如无意外,将出现如下图,表示框架安装成功。四系统内部后台管理系统这个是框架自带的后台登录管理系统,只需要简单的命令即可运行。出现上图即为,创建模型成功。 在PHP个各种web开发框架中,laravel算是一款简洁、优雅的开发框架,本人也刚刚接触到laravel,通过学习大神们的一些文章,下面是我的一些心得体会,希望可以给初学者一些帮助,大家一起进步。言归正传: 本人环境...

    GeekGhc 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<