Laravel重定向后URL携带冗余内容的优化方案
解决Laravel重定向URL携带冗余参数的问题
你的核心逻辑没问题,出现URL冗余是因为直接把整个$request对象传给Redirect::action()时,Laravel会自动序列化请求里的所有参数(包括Cookie、请求头相关的隐藏内容)。咱们只需要精准提取需要的参数,就能在不破坏功能的前提下清理冗余URL。
修改后的store方法代码如下:
public function store(Request $request) { switch($request->input('action')){ case 'create': // 只传递需要的productor和proveedor参数 return Redirect::action('ComprandoController@index', $request->only(['productor', 'proveedor'])); break; case 'search': // 同样只提取需要的筛选参数,避免携带冗余内容 return Redirect::action('ComprasController@index', $request->only(['productor', 'proveedor'])); break; } }
关键说明:
$request->only(['参数1', '参数2'])方法会精准筛选出你指定的参数,自动忽略请求里的其他冗余内容(比如Cookie、_token、action这些不需要出现在URL里的字段)。- 如果后续需要添加更多筛选参数,只需要在
only()的数组里新增对应的键名即可,灵活性拉满。 - 你的原有逻辑完全保留:点击「Buscar」还是会跳转到
ComprasController@index并携带筛选参数,点击「Crear」依然会跳转到ComprandoController@index传递指定参数,只是URL变得干净了。
内容的提问来源于stack exchange,提问作者FlowMafia
相关产品推荐
相关产品推荐

