【发布时间】:2015-12-27 07:28:45
【问题描述】:
在我的 BaseController 我有这个:
public function __construct()
{
$user = Auth::user();
View::share('user', $user);
}
我可以在所有视图中访问 $user 数组,但如果我希望它成为所有控制器中可用的全局变量怎么办?
我有以下工作代码:
use Auth;
use DB;
class UsersController extends BaseController
{
public function index()
{
$user = Auth::user();
$users = DB::table('users')->where('user_id', $user->user_id)->get();
return view('pages.users.index', compact('users');
}
}
我希望 $user 变量在我的所有控制器以及每个控制器上的所有公共函数中都可用,但我不想重新声明“使用 Auth;”和“$user = Auth::user();”
我尝试将它添加到 BaseController 中的 __construct 中,但这似乎不起作用,未定义的 $user 变量错误。有什么想法吗?我知道这是可能的。
【问题讨论】:
-
看看 laravel 中间件这可能对你有帮助。 laravel.com/docs/5.0/middleware
-
为什么不用辅助函数呢?
标签: php laravel global-variables