如何使用查询字符串重定向?

Ske*_*tor 5 php laravel

我有一个包含不同数据选项卡的表单.选项卡由查询字符串激活.保存提交的表单的内容后,我需要重定向回它以使用查询数据显示相应的选项卡.怎么办?

目前我正在使用它进行重定向:

return Redirect::back()->withErrors($validation);
Run Code Online (Sandbox Code Playgroud)

但即使没有在该选项卡上进行任何更改,这也会返回到第一个选项卡.我看到了类似的东西

return Redirect::back()->withErrors($validation)->withQuery('tab'=>'info');
Run Code Online (Sandbox Code Playgroud)

但那没用.有什么建议?

Nur*_*uda 6

这可能不是最佳实践,但我已经使用它来L5.8使用查询字符串重定向回来,并且它按预期工作。

# Clear previous url from query string
$previousUrl = strtok(url()->previous(), '?');

return redirect()->to(
    $previousUrl . '?' . http_build_query(['foo' => 'bar'])
);
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助。


imr*_*shu 5

如果您正在使用Redirect::to()那么很简单。

return Redirect::to('route_name?q='.$append_data)
Run Code Online (Sandbox Code Playgroud)

如果您想使用,Redirect::back()请执行以下操作

# Pass the value while redirecting
return Redirect::back()->with('query_data', 'some_data');
Run Code Online (Sandbox Code Playgroud)

并将条件添加到您的刀片文件中。

@if(!empty(Session::get('query_data')) && Session::get('query_data') == 'some_data')
<script>
$(function() {
    //Change the tab using javascript or
    //use location.href to refresh after appending query params to url.
});
</script>
@endif
Run Code Online (Sandbox Code Playgroud)