Global variable in laravel 4

前端 未结 6 540
萌比男神i
萌比男神i 2020-12-07 23:17

I was wondering how to do a global variable to save me few lines of copy and pasting this lines. Array it probably and put them in one variable instead? I want to use this

6条回答
  •  独厮守ぢ
    2020-12-07 23:48

    You can create a global singleton within App::before event

    App::before(function($request)
    {
        // Singleton (global) object
        App::singleton('myApp', function(){
            $app = new stdClass;
            if (Auth::check()) {
                // Put your User object in $app->user
                $app->user = Auth::User();
                $app->isLoggedIn = TRUE;
            }
            else {
                $app->isLoggedIn = FALSE;
            }
            return $app;
        });
        $app = App::make('myApp');
        View::share('myApp', $app);
    });
    

    In any view, use it like

    if($myApp->isLoggedIn) {
        $myApp->user->email;
        $myApp->user->first_name;
        // ...
    }
    

    In any controller, you can use

    $myApp = App::make('myApp');
    if($myApp->isLoggedIn) {
        $myApp->user->email;
        $myApp->user->first_name;
        // ...
    }
    

    Check out Application Events.

提交回复
热议问题