Laravel Redirect :: intention()条件回退

时间:2014-05-31 06:28:27

标签: php laravel http-redirect laravel-routing

据我了解,Redirect::intended()会在登录前重定向到用户目标页面,或者回退到可以作为参数传递的网址。

我的问题是:我如何制作它以便它首先检查会话中是否存在预期的网址,如果不是Redirect::back(),那么如果它失败则会重定向到用户与Redirect::route('users.show', Auth::user()->username);

相同的个人资料

2 个答案:

答案 0 :(得分:1)

$fallbackUrl = Request::header('referer') ?: URL::route('users.show', Auth::user()->username);

Redirect::intended($fallbackUrl);

答案 1 :(得分:1)

注意:

  1. 部分地,您可以通过将引用者作为Redirect::intended的参数传递给referer来获得您期望的行为。

  2. 其余的取决于Redirect::back失败的标准。

  3. 答案:

    这是我的看法

    // Retrieve the referer - Ripped from Redirect::back()
    $back = Redirect::getUrlGenerator()->getRequest()->headers->get('referer');
    
    // your expected Fall back Redirection logic
    if (itSucceed($back)) {
        Redirect::intended($back);
    } else {
        Redirect::route(...)
    }