经过研究并观察docs和其他链接后,我完全理解为什么不能以旧的方式完成#34;但我真的需要一个解决方法/解决方案这样:
我有一个基类,它没有直接在请求上调用(未在路由上声明):
class AdminPanelController extends Controller
{
protected $_authUser;
public function __construct() {
$this->middleware(function ($request, $next) {
$this->_authUser = Auth::guard('admin')->user();
dd($this->_authUser); // ok
return $next($request);
});
}
...
protected function yoo() {
dd($this->_authUser); // auth user is null, but i need this here
}
}
我需要在yoo()
方法上提供经过身份验证的用户。控制器直接调用:
Route::get('users', 'UsersController@hey');
UsersController:
class UsersController extends AdminPanelController
{
protected params;
public function __construct(Request $request) {
parent::__construct();
$this->params = $this->yoo(); // auth user is null, but i need this here
}
...
}
请注意,如果我在另一个地方调用方法$this->yoo()
而不是构造函数,那么用户就可以使用
注意:我也尝试了$request->user()
(Authentication user provider [] is not defined.
),但由于我有一个多功能身份验证系统,我必须提供一名警卫并尝试$ request->警卫(' admin&#39 ;) - > user(),结果为Method guard does not exist.