You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

获取inventory_update_stock_id时出现偏移错误,请求技术排查

问题分析与解决方法

核心问题

你将inventory_update_stock_id放在了表单的action URL路径参数中,但控制器却尝试用$this->input->post()从POST请求体中获取,两者方式不匹配,导致无法正确获取ID,进而引发跳转错误。

两种解决方式

方式1:从URL分段参数中获取ID(适配现有表单action写法)

因为你在action中通过URL分段传递了ID(more/addMore/'.$row->inventory_update_stock_id),控制器需要通过URI工具类来读取该参数:

// CodeIgniter 3 写法
$inventory_update_stock_id = $this->uri->segment(3);

// CodeIgniter 4 写法(推荐用路由占位符更规范)
$inventory_update_stock_id = $this->request->getUri()->getSegment(3);

方式2:添加隐藏表单字段用POST传递ID(适配现有控制器写法)

保持控制器的$this->input->post()代码不变,在表单内部添加一个隐藏输入框,将ID放入POST请求体中:

<form action="<?= base_url('more/addMore') ?>" id="addMoreDetails" class="form-horizontal" method="post">
    <!-- 新增隐藏字段传递ID -->
    <input type="hidden" name="inventory_update_stock_id" value="<?= $row->inventory_update_stock_id ?>">
    <!-- 其他表单内容 -->
</form>

额外注意事项

  • 若使用URL分段方式,需确保路由规则正确,避免参数被错误解析
  • 无论哪种方式,都要对获取到的ID做合法性校验(比如判断是否为有效数字、是否对应数据库中存在的记录),防止恶意请求

内容的提问来源于stack exchange,提问作者MCIT Trends

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 19:12:41