【实例】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

作者相关推荐

原文地址:https://www.cnblogs.com/Renyi-Fan/p/14556706.html