【发布时间】:2013-09-08 16:58:37
【问题描述】:
在 laravel 的 Redirect 类中是否有参数是完整 url 的方法?我们都知道这些方法的参数只是路由名称、动作、斜杠等,但我现在想要的是
return Redirect::foo('https://bla.com/?yken=KuQxIVTNRctA69VAL6lYMRo0');
【问题讨论】:
在 laravel 的 Redirect 类中是否有参数是完整 url 的方法?我们都知道这些方法的参数只是路由名称、动作、斜杠等,但我现在想要的是
return Redirect::foo('https://bla.com/?yken=KuQxIVTNRctA69VAL6lYMRo0');
【问题讨论】:
是的
use Illuminate\Support\Facades\Redirect;
return Redirect::to('http://heera.it');
更新: Redirect::away('url')(对于外部链接,Laravel 4.19 版):
public function away($path, $status = 302, $headers = array())
{
return $this->createRedirect($path, $status, $headers);
}
【讨论】:
::to 方法适用于任何 url 重定向。
::to 接受绝对 URL?据我所知,例子都是路由和动作?
这在 Laravel 5.8 中对我有用
return \Redirect::to('https://bla.com/?yken=KuQxIVTNRctA69VAL6lYMRo0');
或者你可以使用 / 来代替
use Redirect;
【讨论】:
你可以在 laravel 中使用不同类型的重定向方法 -
return redirect()->intended('http://heera.it');
或
return redirect()->to('http://heera.it');
或
use Illuminate\Support\Facades\Redirect;
return Redirect::to('/')->with(['type' => 'error','message' => 'Your message'])->withInput(Input::except('password'));
或
return redirect('/')->with(Auth::logout());
或
return redirect()->route('user.profile', ['step' => $step, 'id' => $id]);
【讨论】:
你也可以像这样使用redirect()方法:-
return redirect('https://stackoverflow.com/');
【讨论】:
Redirect::to() 和 Redirect::away() 都应该可以工作。
区别
Redirect::to() 进行额外的 URL 检查和生成。那些 附加步骤在 Illuminate\Routing\UrlGenerator 中完成并执行 以下,如果传递的 URL 不是完全有效的 URL(即使 协议):
Determines if URL is secure rawurlencode() the URL trim() URL
源代码:https://medium.com/@zwacky/laravel-redirect-to-vs-redirect-away-dd875579951f
【讨论】: