用于访问laravel中的上一个URL。我在我的控制器中使用此代码。
$current_url = Request::url();
$back_url = redirect()->back()->getTargetUrl();
if ($current_url != $back_url) {
Session::put('previous_url', redirect()->back()->getTargetUrl());
}
即使服务器端验证失败,此方法也有助于维护以前的URL。
在我的刀片中,我访问了以前的网址{{ Session::get('previous_url') }}
。
我需要找到我之前网址的第二部分。 感谢
答案 0 :(得分:3)
你可以这样做:
request()->segment(2);
request()
是一个帮助函数,它返回 Illuminate \ Http \ Request ,但你也可以使用facade Request 或者将类作为依赖项注入你的方法。
修改强>
重定向:redirect()->back()->getRequest()->segment(2);
答案 1 :(得分:0)
在幕后,Laravel正在做这两件事来获取url的片段(来自Request类):
public function segment($index, $default = null)
{
return Arr::get($this->segments(), $index - 1, $default);
}
public function segments()
{
$segments = explode('/', $this->path());
return array_values(array_filter($segments, function ($v) {
return $v != '';
}));
}
你可以在辅助函数中做类似的事情:
public function segment($url, $index, $default)
{
return Arr::get($this->segments($url), $index - 1, $default);
}
public function segments($url)
{
$segments = explode('/', $url);
return array_values(array_filter($segments, function ($v) {
return $v != '';
}));
}