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

如何在CodeIgniter4中从URL参数获取ID并传入控制器方法

在CodeIgniter4中从URL参数获取ID并传递给控制器方法

在CodeIgniter4里,通过URL路径参数传递ID到控制器方法是常见的RESTful风格操作,具体实现分为路由配置和控制器方法接收参数两部分:

1. 配置路由

首先在app/Config/Routes.php中定义路由,将URL中的ID映射到控制器的目标方法。假设你有一个Items控制器,要通过/items/show/123这样的URL传递ID(123),可以这样配置:

$routes->get('items/show/(:num)', 'Items::show/$1');

这里的(:num)是路由占位符,用于匹配数字类型的ID;$1表示将匹配到的第一个占位符值传递给控制器的show方法。如果需要匹配任意字符串格式的ID,可将(:num)替换为(:any)。

2. 控制器方法接收并使用ID

控制器的方法可直接通过参数接收URL传递的ID,示例代码如下:

public function show($id = null)
{
    $data = $this->model->where('id', $id)->findAll();
    if ($data) {
        return $this->respond($data, 200);
    } else {
        return $this->failNotFound("Data Not Found for ID $id");
    }
}
  • 为$id设置默认值null,避免未传递ID时触发错误;
  • 通过模型根据ID查询数据,查询成功则返回200状态码和数据,未查询到则返回404错误提示。

额外说明

如果ID是通过查询字符串传递(比如/items/show?id=123),可通过请求对象获取:

$id = $this->request->getGet('id');

但RESTful风格的路径参数(/items/show/123)更推荐用于这类资源查询场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 04:26:55