我想将管理员用户重定向到dasheboard但管理员登录页面总是刷新,我设置了管理员表并运行了迁移,我添加了一个带有tinkle命令的管理员
AdminLoginController.php
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Admin;
class AdminLoginController extends Controller
{
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])) ){
return redirect()->intended('Admin.dasheboard');
}
return redirect()->back();
}
public function show(){
return view(' Admin.admin-login');
}
}
我的路线:
Route::prefix('admin')->group(function(){
Route::get('/', 'Admin\AdminController@show');
Route::get('/login', 'Admin\AdminLoginController@show');
Route::post('/login', 'Admin\AdminLoginController@login');
});
Auth.php
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'admins' => [
'driver' => 'eloquent',
'model' => App\Admin::class,
],
'users' => [
'driver' => 'database',
'table' => 'users',
],
'admins' => [
'driver' => 'database',
'table' => 'admins',
],
],
对于刀片页面,它有:
<form action="/admin/login" method="post">
答案 0 :(得分:0)
您有多个问题。
intended()
函数取一个url而不是路由名称
使用return redirect()->intended('/');
而不是return redirect()->intended('Admin.dasheboard');
如果您想使用路线名称,您必须在 routes.php
中命名路线名称Route::get('/', 'Admin\AdminController@show')->name('Admin.dasheboard');
然后将此代码用于 AdminLoginController.php
if ((Auth::guard('admins')->attempt(['email' => $request->email, 'password' => $request->password])) ){
return redirect()->route('Admin.dasheboard');
}
您可以找到有关named routes
的更多信息<强>更新强>
您的管理员警卫称admins
为 auth.php 文件
所以你必须使用(s)charcted added。{/ p>
Auth::guard('admins')
醇>