php - laravel 认证登录中函数名必须是字符串
问题描述
在 laravel admin 上进行身份验证操作时出现问题。
FatalThrowableError (E_ERROR)
函数名必须是字符串
管理员控制器:
class AdminController extends Controller
{
public function __construct()
{
$this->middleware('auth:admin');
}
public function index(){
return view('comparadm.dashboard');
}}
管理员登录控制器:
class AdminLoginController extends Controller
{
public function __construct()
{
$this->middleware('guest:admin');
}
public function showLoginForm()
{
return view('auth.admin-login');
}
public function login(Request $request){
$this->validate($request,[
'email'=>'required|email',
'password'=>'required|min:6'
]);
if(Auth::guard('admin')->attempt(['email'=>$request->email,'password'=>$request->password],$request->remember))
{
return redirect()->intended(route('admin.dashboard'));
}
return redirect()->back()->withInput($request->only('email','remember'));
}}
路线:
Auth::routes();
Route::prefix('admin')->group(function() {
Route::get('/login', 'Auth\AdminLoginController@showLoginForm')->name('admin.login');
Route::post('/login', 'Auth\AdminLoginController@login')->name('admin.login.submit');
Route::get('/', 'AdminController@index')->name('admin.dashboard');});
解决方案
答案可能与这个特定问题无关,但至少可以为某人指明正确的方向。我遇到了同样的问题,但后来我发现我搞砸了位于“App\Http\Middleware\RedirectIfAuthenticated.php”中的 RedirectIfAuthenticated.php。问题是我评论了如下所示的句柄函数
public function handle($request, Closure $next, $guard = null) {
if (Auth::guard($guard)->check()) {
return redirect('/home');
}
return $next($request);
}
在我删除评论后,它就像魔术一样工作。
推荐阅读
- python - pygame中移动精灵之间的碰撞
- python-3.x - windows 10 pyautogui 多个桌面
- mongodb - 如何使用 Strapi 在 GraphQL 中添加自定义查询?
- python - 使用 BeautifulSoup 从主跨度类下的多个跨度中检索数据
- kubernetes - pod 和服务外部 IP 相同的 IP
- python - 让一个函数调用另一个创建元组的函数
- classification - MNIST 数据集提升
- rust - 有没有办法在 rust 中将类型标记为不可丢弃?
- javascript - 如何使 IntersectionObserver 与变换平移动画一起使用?
- html - :not() 伪选择器对某些标签不正确