我有一个包含不同数据选项卡的表单。选项卡由查询字符串激活。保存提交的表单的内容后,我需要重定向回它,以使用查询数据显示相应的选项卡。怎么才能做到呢?
目前我正在使用这个重定向:
return Redirect::back()->withErrors($validation);
,但这将返回到第一个选项卡,即使该选项卡上没有任何更改。我看到了类似
的东西return Redirect::back()->withErrors($validation)->withQuery('tab'=>'info');
但这不起作用。有什么建议吗?
这可能不是最佳实践,但我已经在L5.8
中使用它来重定向返回查询字符串,并且它按预期工作。
# Clear previous url from query string
$previousUrl = strtok(url()->previous(), '?');
return redirect()->to(
$previousUrl . '?' . http_build_query(['foo' => 'bar'])
);
如果您使用Redirect::to()
,那么很简单。
return Redirect::to('route_name?q='.$append_data)
如果您想使用Redirect::back()
,请执行以下操作
# Pass the value while redirecting
return Redirect::back()->with('query_data', 'some_data');
并添加条件到您的刀片文件。
@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
您可以使用会话:
return redirect()->back()->with('tab', 'info');
从会话中获取信息,使用session()
全局助手,它在控制器和视图中工作:
session('tab');
return Redirect::route('route_name',['query1'=>'query1value','query2','query2value']);
这里