任何更改Auth::user()
返回的用户实例的方法,我想要的是急切加载它的一些关系,所以我不必每次都输入它:
这
Auth::user();
至
Auth::user()->with('company')->first();
每次我请求Auth::user()
时,我都会返回Auth::user()->with('company')->first()
。
答案 0 :(得分:1)
执行此操作的一种方法是修改before
过滤器(app/filters.php
)。
App::before(function($request)
{
if (Auth::check())
{
Auth::setUser(Auth::user()->with('company')->first());
}
});
这样,您仍然可以在任何需要的地方使用Auth::user()
。
答案 1 :(得分:0)
我遵循的一个方法是在BaseController中设置Auth :: user(),它将在所有控制器中都可访问。如果您在视图中使用,您可以查看:: share()以使其在所有视图中可用。在这里,您可以急切地加载您的关系。
class BaseController extends Controller {
protected $currentUser;
public function __construct() {
$this->currentUser = Auth::user(); // You can eager load here. This is will null if not logged in
}
protected function setupLayout()
{
if ( ! is_null($this->layout))
{
$this->layout = View::make($this->layout);
}
View::share('currentUser', $this->currentUser);
}