【发布时间】:2016-12-30 12:01:54
【问题描述】:
我对 Laravel 5.3 身份验证有疑问。我想在登录后重定向用户。如果我想将所有用户重定向到我知道的同一条路线,我可以更改属性protected $redirectTo = 'mypath',但我想根据用户的类型重定向用户,所以我需要自定义逻辑。在它说的文档中,我应该制作
protected function redirectTo(){
//my logic goes here
}
但我的功能一直被忽略。在它说的文档中,我的函数应该覆盖$redirectTo 属性,但即使我删除它,它仍然会转到默认路由(“/home”)。如果我更改属性值,它会将我重定向到正确的路径,但我的函数仍然会被忽略。
https://laravel.com/docs/5.3/authentication#included-authenticating
我的登录控制器如下所示:
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Support\Facades\Auth;
class LoginController extends Controller
{
use AuthenticatesUsers;
//protected $redirectTo = '/';
protected function redirectTo()
{
return redirect('admin/home');
}
public function __construct()
{
$this->middleware('guest', ['except' => 'logout']);
}
}
编辑:如果我将函数命名为 authenticated() 而不是 redirectTo(),它将按计划工作。
protected function redirectTo()
{
return redirect('admin/home');
}
【问题讨论】:
-
你在哪里覆盖
$redirectTo变量?我在您的代码中没有看到分配给$this->redirectTo的值 -
您是否尝试过返回字符串而不是重定向对象?
-
@yivi 我做了,我试过返回“admin/home”
-
@dragos 我删除了它。它是否存在并没有什么区别。我编辑了我的答案,所以注释部分是 $redirectTo 变量。
-
返回正确的 URL,而不是路由名称。
标签: php authentication laravel-5.3