- 对不起,laravel noob来自普通的php。
我正在使用遗留的php全局问题。我希望能够在我的所有视图中调用函数中的数据。
基本上,我有一个名为loggedInUser的类,我用$ loggedInUser实例化,我可以调用一个对象,例如, $ loggedInUser-> USER_ID
现在,我不知道该怎么办。我不知道在哪里/如何定义信息。我尝试在/app/filters.php(在函数之前)执行它并没有工作,并且在bootstrap / start.php中也没有工作,因为Session :: classes无法在那里调用。
我在filters.php中有这个代码,但它似乎没有使用类本身,但我拉的每一件事,例如 - > user_id是一个不应该是这种情况的类。我怎样才能让它成为一个对象呢?知道放置代码最适合我的地方吗?
App::singleton('loggedInUser', function(){
$app = new stdClass;
if (Auth::check()) {
// Put your User object in $app->user
//$app->user = Auth::User();
$loggedInUser = new loggedInUser();
$user_id = Session::get('uid');
$app->email = DB::table('app_Users')->where('User_ID', '=', $user_id)->pluck('Email');
$app->user_id = $user_id;
$app->display_username = DB::table('app_Users')->where('User_ID', '=', $user_id)->pluck('Username');
$app->clean_username = DB::table('app_Users')->where('User_ID', '=', $user_id)->pluck('Username_Clean');
$app->isLogedin = TRUE;
}
else {
$app->isLogedin = FALSE;
}
return $app;
});
$app = App::make('loggedInUser');
View::share('loggedInUser', $app);
感谢您的投入!
答案 0 :(得分:2)
这是非常诚实的 - 如果它冒犯了我很抱歉 - 但是这里你的编码逻辑存在很多问题 - 很明显你不理解Laravel。我建议做一些教程,我个人推荐Laracasts.com
您基本上不需要您编写的任何代码。你所需要的只是
View::share('loggedInUser', Auth::user());
然后在你看来
{{{ $loggedInUser->email }}}
{{{ $loggedInUser->display_username }}}
等...
有些人会说你甚至不需要View :: share()函数 - 只是在你的视图中这样做:
{{{ Auth::user()->email }}}
{{{ Auth::user()->display_username }}}