编辑后如何重定向至正确分页的索引页
解决编辑后重定向到正确分页的问题
这问题我之前也碰到过!核心就是编辑提交后,重定向逻辑里没带上当前的分页参数,所以默认回到了第1页。下面给你几个实用的解决思路:
1. 在编辑表单中隐藏传递分页参数
当你从索引页第2页跳转到编辑页时,把page参数带过去,然后在编辑页面的表单里加一个隐藏字段,把分页号存进去:
<!-- edit.cto页面的表单里添加 --> <input type="hidden" name="page" value="<?php echo $this->request->getQuery('page') ?? 1; ?>">
这样提交表单时,分页参数会和其他表单数据一起传到后台,后续重定向就能拿到这个值了。
2. 后台重定向时拼接分页参数
在处理编辑提交的后台方法(比如editAction)里,先获取提交过来的page参数,再在重定向URL里带上它:
// 后台处理编辑提交的代码示例 $page = $this->request->getData('page') ?? 1; // 重定向到索引页并指定分页 return $this->redirect()->toRoute('EmployeeMonthlySalaries', [ 'action' => 'index', 'page' => $page ]);
如果用的是其他框架,思路完全一致:先拿到分页参数,再把它拼到重定向的目标URL里。
3. 用会话(Session)保存分页状态
要是不想通过表单传参数,还可以在进入索引页时把当前分页号存在Session里:
// 索引页的处理方法中 $currentPage = $this->request->getQuery('page') ?? 1; $this->session->write('EmployeeMonthlySalaries.currentPage', $currentPage);
然后在编辑完成重定向时,从Session里取出这个值:
// 编辑提交后的重定向逻辑 $page = $this->session->read('EmployeeMonthlySalaries.currentPage') ?? 1; return $this->redirect()->toRoute('EmployeeMonthlySalaries', [ 'action' => 'index', 'page' => $page ]);
这种方式适合用户从任意分页进入编辑的场景,不用每次手动传参数。
另外要注意:确保你的路由配置里支持page作为可选参数,这样生成的重定向URL才能正确识别分页号。
内容的提问来源于stack exchange,提问作者Devendra Vastrakar
相关产品推荐
相关产品推荐

