在Laravel的默认AuthenticatesAndRegistersUsers类使用的AuthController特性中,使用以下代码:

return redirect()->intended($this->redirectPath());


redirectPath()函数如下:

public function redirectPath()
{
    if (property_exists($this, 'redirectPath'))
    {
        return $this->redirectPath;
    }
    return property_exists($this, 'redirectTo') ? $this->redirectTo : '/home';
}


阅读此代码后,可以在AuthController类上设置两个不同的属性:redirectPathredirectToredirectPath优先于redirectTo

当我想更改默认页面以将其从/home重定向到/时,我认为最好设置redirectTo属性。 redirectPath属性的预期用途是什么?

最佳答案

我相信,由于AuthenticatesAndRegistersUsers是一个特征,并且可以由不同的类使用,所以两个属性检查都是为了实现与不同类的向后兼容性,但是逻辑具有相同的目的。

通常,我建议您使用redirectPath属性,因为它是该函数的第一个条件,并且如果出于某种原因您不注意并在扩展定义了redirectTo的另一个控制器的控制器中使用redirectPath属性,最终会想到什么地方出了问题以及为什么您的控制器将您重定向到其他路径。

10-04 22:09