• 【实例】laravel给所有视图共享数据


    【实例】laravel给所有视图共享数据

    一、总结

    一句话总结:

    1、创建service provider:在service provider的【boot方法】中调用【view的composer方法】:【View::composer('*','AppHttpControllersHomeCommonController');】
    2、注册服务:【在config的app.php中注册服务】:AppProvidersFryComposerServiceProvider::class,
    3、【在公共控制器CommonController中补充composer方法】:public function compose(View $view){}
    在service provider的【boot方法】中调用【view的composer方法】
    public function boot()
    {
        View::composer('*','AppHttpControllersHomeCommonController');
        //这个地方可以调用你已经建好的任何一个控制器,前面的*号代表全局共享,
        //如果指定了视图文件下面的文件夹,可以使用admin.auth.*这种写法,
        //表明你要共享数据的文件范围
    }
    
    
    【在公共控制器CommonController中补充composer方法public function compose(View $view){
        //与所有视图共享数据
        //处理过的用户信息
        $user_f=UserUserHandle::handle_user_info();
        $user_f=json_encode($user_f);
        $view->with([
            'user_f' => $user_f,
        ]);
    }

    二、【实例】laravel给所有视图共享数据

    1、创建service provider

    在service provider的boot方法中调用view的composer方法

    <?php
    
    namespace AppProvidersFry;
    
    use AppModelHomeUserUserHandle;
    use IlluminateSupportServiceProvider;
    use IlluminateSupportFacadesSchema;
    use IlluminateSupportFacadesView;
    
    class ComposerServiceProvider extends ServiceProvider
    {
        /**
         * Register any application services.
         *
         * @return void
         */
        public function register()
        {
            //
        }
    
        /**
         * Bootstrap any application services.
         *
         * @return void
         */
        public function boot()
        {
            View::composer('*','AppHttpControllersHomeCommonController');
            //这个地方可以调用你已经建好的任何一个控制器,前面的*号代表全局共享,
            //如果指定了视图文件下面的文件夹,可以使用admin.auth.*这种写法,
            //表明你要共享数据的文件范围
        }
    }

    2、注册服务

    //用来为所有视图共享数据
    AppProvidersFryComposerServiceProvider::class,

    3、在公共控制器CommonController中补充composer方法

    <?php
    
    namespace AppHttpControllersHome;
    
    use AppModelHomeUser;
    use IlluminateHttpRequest;
    use AppHttpControllersController;
    use Auth;
    use IlluminateViewView;
    
    class CommonController extends Controller
    {
        public function __construct()
        {
            //验证用户是否登录
            $this->middleware('home.auth');
    
            //可以在这里将用户信息传递到页面:处理了关键信息的用户信息
    
        }
    
        /**
         * 成功信息
         * @param $message
         * @return IlluminateHttpJsonResponse
         */
        protected function success($message){
            //这样返回信息的时候只用返回$this->success('成功')
            return response()->json(['message'=>$message,'valid'=>1]);
        }
    
        /**
         * 错误信息
         * @param $message
         * @return IlluminateHttpJsonResponse
         */
        protected function error($message){
            return response()->json(['message'=>$message,'valid'=>0]);
        }
    
        public function compose(View $view){
            //与所有视图共享数据
            //处理过的用户信息
            $user_f=UserUserHandle::handle_user_info();
            $user_f=json_encode($user_f);
            $view->with([
                'user_f' => $user_f,
            ]);
        }
    
    
    }

    4、这样前端就可以获取到user_f数据了

     
    我的旨在学过的东西不再忘记(主要使用艾宾浩斯遗忘曲线算法及其它智能学习复习算法)的偏公益性质的完全免费的编程视频学习网站: fanrenyi.com;有各种前端、后端、算法、大数据、人工智能等课程。
    博主25岁,前端后端算法大数据人工智能都有兴趣。
    大家有啥都可以加博主联系方式(qq404006308,微信fan404006308)互相交流。工作、生活、心境,可以互相启迪。
    聊技术,交朋友,修心境,qq404006308,微信fan404006308
    26岁,真心找女朋友,非诚勿扰,微信fan404006308,qq404006308
    人工智能群:939687837

    作者相关推荐

  • 相关阅读:
    我真的没读野鸡大学!是他们不好好起名字!
    Request.Cookies和Response.Cookies
    深受理科生喜欢的10大专业
    如何玩转“互联网+教育”?
    js调试工具Console命令详解
    XSS获取cookie并利用
    257. Binary Tree Paths
    EXEC sp_executesql with multiple parameters
    235. Lowest Common Ancestor of a Binary Search Tree
    226. Invert Binary Tree
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/14556706.html
Copyright © 2020-2023  润新知