codeigniter 2.1.4 支持http方法自定义路由吗?

2023-12-23

我知道 codeigniter 支持自定义路由到另一个类/方法 例如

$route['product/(:any)'] = "catalog/product_lookup";

但是,它是否支持基于调用 url 的 http 请求类型的路由(如 laravel 中那样)?

例如像 Laravel 一样使用 get 方法重新路由

Read PUT /users/X  
Route::post('users/{id}','UsersController@update');

官方生产版本没有。对此只字未提docs http://ellislab.com/codeigniter/user-guide/general/routing.html. But...

该功能是在开发分支 https://github.com/EllisLab/CodeIgniter/tree/develop。它是合并自这个拉取请求 https://github.com/EllisLab/CodeIgniter/pull/2712。以下是涉及该功能的开发版本文档的一部分:

在路由中使用 HTTP 动词

如果您愿意,可以使用 HTTP 动词(或方法)来定义路由规则。这在构建 RESTful 应用程序时特别有用。您可以使用标准 HTTP 动词(GET、PUT、POST、DELETE)或自定义 HTTP 动词(例如:PURGE)。 HTTP 动词规则不区分大小写。您需要做的就是使用 HTTP Verb 规则添加数组索引。例子:

    $route['products']['put'] = 'product/insert';

在上面的示例中,对 URI“products”的 PUT 请求将调用“product”控制器类和“insert”方法。

    $route['products/(:num)']['DELETE'] = 'product/delete/$1';

对 URL 的 DELETE 请求(其中第一段为“product”,第二段为数字)将被重新映射到“product”类,并且“delete”方法将匹配项作为变量传递给该方法。

    $route['products/([a-z]+)/(\d+)']['get'] = 'product/$1/$2';

对类似于 products/shirts/123 的 URI 的 GET 请求将调用“product”控制器类和“shirt”方法,并以数字作为方法参数。

使用 HTTP 动词是可选的,因此如果您希望在一条规则中处理任何 HTTP 动词,您可以只编写不使用 HTTP 动词的路由规则。例子:

    $route['product'] = 'product';

这样,使用第一段中包含单词“product”的任何 HTTP 方法的所有传入请求都将被重新映射到“product”类。

快速解决方案是更新system/core/Router.php与该特定提交的更改:https://github.com/EllisLab/CodeIgniter/commit/af709d6ebe6ca75913d7a9eedb4fdcd76be45c50 https://github.com/EllisLab/CodeIgniter/commit/af709d6ebe6ca75913d7a9eedb4fdcd76be45c50.

此外,拉取请求参考鸽子库 https://github.com/jamierumbelow/pigeon用于处理高级路由配置。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

codeigniter 2.1.4 支持http方法自定义路由吗? 的相关文章

  • File_get_contents($url): 无法打开流

    我有一个脚本 我使用以下方法读取文件 file get contents urlencode url 我收到此错误 failed to open stream HTTP request failed HTTP 1 0 400 Bad req
  • Shift+Enter 按钮用于提交表单

    我想使用 Shift Enter 按钮提交表单 而不是简单地按 Enter 按钮 请帮助我 如果您仍然想这样做 尽管这会带来可用性问题 form keydown function e if e keyCode 13 e shiftKey W
  • php 错误地将字符串中的 ¬ 转换为 Ø

    我需要在 PHP 中组成一个简单的字符串 它是要发布到另一个站点的数据字符串 问题是其中一个字段是 notify url 当我使用该字段时 PHP 将其前面的 和 not 部分表示逻辑运算符 AND NOT 并将其转换为 字符 string
  • 使用哪个 HTTP 状态代码来拒绝由于乐观锁定失败而导致的 PUT

    假设我想实现某种乐观锁定并使用 ETag 来指示最新的资源状态 这意味着 客户将使用If Match标题时PUT等待更新 根据HTTP规范 http www w3 org Protocols rfc2616 rfc2616 sec14 ht
  • 从 Yii 中的 registerScript 方法强制执行脚本顺序

    我创建了一个小部件 它注册了自己的脚本 如下所示 class MyWidget extends CWidget public function run Yii app gt clientScript gt registerScript CL
  • 将 bcrypt 密码哈希从 PHP 迁移到 Python - ValueError:无效的 hashed_pa​​ssword salt

    我有一个 PHP7 应用程序 它可以像这样对用户密码进行哈希处理 hash password hash password PASSWORD BCRYPT 例如 如果我通过test1234为此 我有 2y 10 aazE9OUKZlOQiM6
  • PHP foreach 数组与 stdClass 对象

    我需要帮助尝试获取数组和 stdClass 对象内的值 仅供参考 我正在使用 foursquare API 我有这样的事情 fsq groups venues gt response gt groups echo pre print r f
  • phpstorm 和 xdebug 之间的连接

    我配置了 phpstorm xdebug 并且能够使用断点调试我的代码 这些天我更新了 php 通过brew 和 xdebug 现在我有 php 5 5 26 和 xdebug 2 3 3 当我尝试调试测试 和代码 时 phpstorm 告
  • 使用 PHP 将对象插入 Google Cloud Storage

    说实话 我对缺少使用 PHP 的 Google Cloud Storage 文档感到非常沮丧 我在这里 Stackoverflow 找到的大部分内容都已经过时了 这是我的尝试 postbody array data gt file get
  • 如何在我的查询中使用日期格式?

    这适用于 phpmyadmin 但是当我在代码上使用时给我一个错误 错误说 解析错误 语法错误 意外的 我的语法有什么问题 gt
  • 如何从 PHP 访问表单的“名称”变量

    我正在尝试创建一个 BMI 计算器 这应该允许人们使用公制或英制测量单位 我意识到我可以使用隐藏标签来解决我的问题 但这之前曾困扰过我 所以我想我会问 我可以使用 POST variableName 查找提交的变量名字段值 但是 我不知道或
  • 如何在使用 echo 时将字符串与函数调用连接起来?

    我想在我的 echo ed html 字符串中使用两个函数调用返回的值 li a href the permalink the title a li 以下工作正常 echo li a href echo the title echo a l
  • 终端从包含空格的变量传递参数

    在终端中如何将包含空格的字符串作为参数传递 它实际上跳过了空格后面的部分 只取第一个单词 word soccer ball shell exec casperjs test js word word 那么我怎样才能转义空白它只运行这个命令
  • 我们如何获取R中的商品价格?

    正如标题 我知道我们可以使用quantmod包来获取股票价格 但我们如何检索黄金 石油或农产品等商品价格 Use Quandl包 这里有一些例子 Gold lt Quandl LBMA GOLD WTI lt Quandl CHRIS CM
  • 550 Bad HELO - 主机冒充域名 Laravel

    我正在尝试设置 Laravel 身份验证 包括 密码重置 功能 但当我尝试发送电子邮件时 我偶然发现了一个错误 我得到的错误是 Expected response code 250 but got code 550 with message
  • 什么会导致 PHP 变量被服务器重写?

    我的公司给了我一个虚拟机来安装网络软件 但我遇到了一个相当奇怪的问题 如果 PHP 变量与特定模式匹配 服务器就会覆盖 重写 它们 什么可以像这样重写 PHP 变量 以下是一个完整的独立脚本
  • Preg_split 用逗号,忽略括号,PHP

    我必须分割一个字符串 并且我想避免用括号内的逗号分割它 那么我该如何实现呢 Example string string1 sString1 sString2 ssString1 ssString2 string2 string3 resul
  • Php mod_rewrite 无法正常工作

    我有一个带有以下链接结构的 php 页面 http localhost wisper businesspage php profile creativeartbd 所以我尝试将此链接转换为以下样式 http localhost wisper
  • 以编程方式添加数字签名外观?

    我正在以编程方式对我的 PDF 文件进行签名 并且我想将签名外观添加到 PDF 我需要哪些对象才能实现此目的 我知道我必须Annotations BBox and XObject但我真的不知道按什么顺序以及是否需要其他东西 调试此类内容以找
  • 使用 Laravel Intervention 库缓存动态图像不起作用

    我目前正在使用 Laravel 5 并利用干预图像集成 http image intervention io http image intervention io 我动态地使用它 因此图像具有如下 URL http example org

随机推荐