首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在codeigniter的路由中使用HTTP谓词不会加载控制器

在CodeIgniter的路由中使用HTTP谓词不会加载控制器是因为CodeIgniter默认的路由规则不支持使用HTTP谓词来调用控制器方法。HTTP谓词是指在HTTP协议中定义的一些动作,例如GET、POST、PUT、DELETE等。

在CodeIgniter中,默认的路由规则是基于URL中的控制器和方法来确定要调用的控制器和方法。例如,URL为http://example.com/index.php/controller/method,CodeIgniter会加载controller类,并调用其中的method方法。

如果想要在CodeIgniter中使用HTTP谓词来调用控制器方法,可以通过自定义路由规则来实现。可以在application/config/routes.php文件中添加自定义路由规则。以下是一个示例:

代码语言:txt
复制
$route['api/users']['GET'] = 'api/users/index';
$route['api/users']['POST'] = 'api/users/create';
$route['api/users/(:num)']['GET'] = 'api/users/show/$1';
$route['api/users/(:num)']['PUT'] = 'api/users/update/$1';
$route['api/users/(:num)']['DELETE'] = 'api/users/delete/$1';

上述示例中,定义了一些使用HTTP谓词的路由规则,用于处理用户资源的API。例如,GET /api/users会调用api/users控制器的index方法,POST /api/users会调用api/users控制器的create方法,GET /api/users/1会调用api/users控制器的show方法,并将1作为参数传递给该方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

讲解-加载静态页

讲解 本教程旨在向您介绍CodeIgniter框架和MVC体系结构基本原理。它将向您展示如何以逐步方式构造基本CodeIgniter应用程序。 本教程,您将创建一个基本新闻应用程序。...本教程将主要关注: 模型-视图-控制器基础知识 路由基础 表格验证 使用“查询生成器”执行基本数据库查询 整个教程分为几页,每页仅解释CodeIgniter框架功能一小部分。...使用自定义路由规则,你可以将任意 URL 映射到任意控制器和方法上,从而打破默认规则: http://example.com/[controller-class]/[controller-method...你可以关于 URL路由文档 中找到更多信息。 路由事例第二条规则 $routes 数组中使用了通配符 (:any) 来匹配所有的请求,然后将参数传递给 Pages 类 view() 方法。...路由规则是不是正确将你带到了控制器 view() 方法?太酷了!

3.6K10
  • 讲解-启动流程

    CodeIgniter4 是一个完整重写,将质量和代码带入一个更现代版本,同时仍然保持着许多完整东西来自CodeIgniter4 Github介绍 CodeIgniter4 启动流程分析...CodeIgniter\CodeIgniter ,下文简称 CI 类,执行过程如下 执行 CI->run(),解析请求、路由,执行控制器并返回响应结果 框架引导文件 - System\bootstrap.php....php 根据CI_DEBUG标志来加载调试类库Kint 返回CI类 执行主流程 - CI->run() 开始基准测试 获取CodeIgniter\HTTP\Request对象 获取CodeIgniter...,并实例化框架核心类 CodeIgniter\CodeIgniter ,下文简称 CI 类,执行过程如下 执行 CI->run(),解析请求、路由,执行控制器并返回响应结果 框架引导文件 - System....php 根据CI_DEBUG标志来加载调试类库Kint 返回CI类 执行主流程 - CI->run() 开始基准测试 获取CodeIgniter\HTTP\Request对象 获取CodeIgniter

    2.4K10

    【Laravel系列3.4】中间件路由控制器应用

    控制器使用中间件 路由中配置中间件是最简单也是最方便做法,但如果我们说不想在路由中配置,比如说这个控制器里面的方法可能会定义多种路由,我们想让所有定义路由都可以走这个中间件的话,那么除了后面要讲全局配置中间件以外...,我们还可以某个控制器定义要使用中间件。...我们使用依然是和上面那个路由相同控制器方法,只不过在这个路由上,我们没有指定中间件,而是控制器代码 构造函数 里面通过 middleware() 方法指定了中间件,这样就可以让这个控制器所有方法都去执行指定中间件内容...全局使用中间件 上面说过内容,都是某一个特定情况下使用中间件,比如说指定路由,或者是指定控制器。...就可以看到,它定义了两个路由加载分别是 routes 目录下对应两个文件,然后使用 middleware() 指定中间件其实就是我们中间件组定义那两个中间件组。

    2.6K50

    -代码模块

    代码模块 CodeIgniter支持代码模块化组合,以便于你构建可重用代码。模块通常来说是以一个特定主题为中心而构建,并可被认为是大型程序一系列微型程序。...视图 命名空间 CodeIgniter使用模块功能核心组件来自于 与PSR4相适应自动加载 。...虽然所有的代码都可以使用PSR4自动加载和命名空间,最主要充分使用模块优势方式还是为你代码加上命名空间,并将其添加到 app/Config/Autoload.php  psr4 这节。...= false; 和文件打交道Working With Files 这节将会详细介绍每种文件类型(控制器,视图,语言文件等)以及模块如果使用它们。...控制器 主 app/Controller 目录下定义控制器不会自动被URI路由自动调用,所以需要在路由文件内部手动声明: // Routes.php $routes->get('blog', 'Acme

    1.2K10

    thinkPHP5框架路由常用知识点汇总

    ::bind('index/blog'); // 绑定当前URL到 index模块blog控制器read操作 Route::bind('index/blog/read'); 个人:到目前为止路由绑定效果使用动态注册路由没差别...模块、控制器、方法、传递参数名 全部隐藏,而只注册路由的话只能隐藏 模块、控制器、传递参数名,还存在一个路由表达式 Route::get('index/blog/:id','index/blog/...read'); ↓ http://serverName/5 2、绑定到命名空间 个人:这一个绑定十分省事,原先做项目时模型和控制器都需要在最上面进行命名空间声明,而使用命名空间绑定,一个模块只需要两句...注:绑定到命名空间和类之后,不会进行模块初始化工作。 4、入口文件绑定 个人:如果我们使用入口文件绑定,绑定一个模块,同时取消多模块访问配置↓,也就意味着,就算你项目里放了再多项目也只会访问一个。...' 配置传入参数时候,如果需要使用当前泛域名作为参数,可以直接设置为“*”即可 TP5手册:https://www.kancloud.cn/manual/thinkphp5/118029 更多关于

    85421

    thinkphp5框架路由原理与用法详解

    通俗说:路由就是把url请求优雅对应到你想要执行操作方法。 路由其实就是把真实url地址隐藏起来,使用访问地址来访问应用(网站或OA等)。...定义 通常是应用路由配置文件application/route.php进行注册。 ? 注册 2种注册方式:1路由动态注册和2配置定义方式 ?...配置定义方式 其中,__pattern__是指定义全局变量规则, ? 对应Route.php: ? 路由分组 这个功能允许把相同前缀路由定义合并分组, 示例一: ?...http://cms.com/show/page/69 http://cms.com/index/page/show/id/69.html 明白一点了,不能这样写,可选参数只能放到路由规则最后,如果在中间使用了可选参数的话...路由别名 似乎使用路由别名后,原pathinfo并不会失效~ 小结 url()助手函数里,模块/控制器/方法要写全; 更多关于thinkPHP相关内容感兴趣读者可查看本站专题:《ThinkPHP入门教程

    1.7K41

    Asp.NetCore Web开发之路由

    asp.net core通过路由来将请求映射到对应action,主要用到两个中间件,UseRouting()和UseEndpoints() 前者用于设置请求和action映射关系,后者用于请求没有对应...; }); 这是一个传统路由,用于将请求映射到控制器action,默认是访问home控制器index界面,并且支持使用REST风格传入一个可空参数(不是必须),也就是/{id?}...HTTP谓词模板 http谓词模板有: HttpGet , HttpPost , HttpPut , HttpDelete , HttpHead , HtttpPatch 它们也是路由一种,一般用在...Web API 路由规范 web api,一般会使用ApiController这个特性标记控制器,它作用仅返回序列化数据,不会返回视图,下面看段代码: app.UseEndpoints...,没有做什么默认化,所以需要控制器自己定义路由,在生成控制器,默认路由为: [Route("[controller]")] public class WeatherForecastController

    86620

    从Web开发者视角来解读MVC架构

    此类框架另一个特点是:同一个框架可能会将其应用程序放置控制器,然后将另一部分放置模型。因此不少Web开发人员认为MVC架构略显混乱,甚至毫无固定章法可循。...而对于Ruby语言,我们也可以使用Haml(http://haml.info/)和针对PythonFlask(http://flask.pocoo.org/)。...由于这些动作无法直接从浏览器中生成,因此您只能自行产生一个GET或POST,或者是通过内置某个框架HTTP客户端,来达到该目的。 在此,控制器充当是模型与视图之间中间人角色。...控制器需要通过模型从数据库获取某些数据,而控制器获取到相关数据之后,通过加载视图方式,将该数据传递给它。接着,模板引擎接管后续“任务”,实现输出变量之类逻辑事务。...接着,“路由器”开始调用基于该路由特定控制器方法。因此,如果需要使用或获取一些数据的话,控制器需要与模型进行交互,而该模型也会与后台数据库进行交互。

    3.5K20

    yii2 控制器验证请求参数使用方法

    写api接口时一般会在控制器简单验证参数正确性。 使用yii只带验证器(因为比较熟悉)实现有两种方式(效果都不佳)。 针对每个请求单独写个Model , 定义验证规则并进行验证。...缺点:写好多参数验证Model 类。 使用独立验证器 中提到$validator- validateValue() 方法直接验证变量值。缺点:写实例化很多验证器对象。...有么有“一劳永逸”做法,像在Model 通过rules 方法定义验证规则并实现快速验证呢?有!...从验证规则获取可赋值属性。 <?...使用参数验证模型 进行验证和存储验证错误消息。 使用魔术方法获取参数验证模型 验证错误消息。 <?

    3.7K00

    概述-服务

    Introduction CodeIgniter所有类均作为“服务”提供。这仅意味着,要对要调用类进行硬定义,而不是对要加载类名称进行硬编码,而是一个非常简单配置文件定义它们。...注解 建议仅在控制器内创建服务。其他文件,例如模型和库,应将依赖项传递到构造函数或通过setter方法传递。 方便功能 提供了两种功能来获得服务。这些功能始终可用。...当您想创建一个提供不同方式创建路由替代品时,只需创建一个实现以下内容新类RouterCollectionInterface: class MyRouter implements \CodeIgniter...views/') { return new \CodeIgniter\View\View($viewPath); } 这将在构造方法设置默认路径,但允许轻松更改其使用路径: $renderer...想象一下,您已经Blog根目录创建了一个新目录。这将包含一个带有控制器,模型等Blog模块,并且您想将某些类作为服务使用

    1.7K10

    CI基础知识笔记

    值 $this->form_validation->run(); 其中载入类库第二个参数可以传递数组到类构造函数(这样类构造函数必须带有参数) 自定义类库初始化CI资源可以使用$CI=...,仅仅在benchmark和hooks类加载完毕时候,没有执行路由或者其他过程 pre_controller调用你任何控制器之前调用,此时所用基础类路由选择和安全性检查都已经完成 post_controller_constructor...第一个为系统默认路由$route[‘default_controller’] = ‘welcome’; 第二个为404页面的路由$route[‘404_override’] = ”; 这个路由标识了如果请求控制器无法访问时候将加载哪个控制器...但它不会影响show_404()这个方法,这个方法依然会加载默认位于application/errors/error_404.phperror_404.php页面。...更多参考:http://codeigniter.org.cn/user_guide/general/errors.html 13.启动缓存 $this->output->cache(n);//其中n是分钟

    1.3K30

    关于 defineAsyncComponent 延迟加载组件 vue3 使用总结

    这意味着它们仅在需要时从服务器加载。 这是改善初始页面加载好方法,因为我们应用程序将以较小加载,而不必页面加载加载每个组件。...本教程,我们将学习 defineAsyncComponent 全部内容,并看一个例子,该例子将一个弹出窗口加载推迟到我们应用程序需要时候。 好了,让我们开始吧。...要使用它,我们必须从Vue中导入它,然后才能在脚本其余部分中使用它。 我们也可以使用工厂函数 import ,轻松地从其他文件添加Vue组件。...就这么简单,让我们进入我们例子。 使用defineAsyncComponent延迟加载弹出组件 本例,我们将使用一个由单击按钮触发登录弹出窗口。...有条件渲染组件我们页面加载时往往是不需要,所以为什么要让我们应用程序加载它们呢?

    6.5K60

    tp5.1 框架路由操作-URL生成实例分析

    /控制器/操作生成 如果你路由方式是路由到模块/控制器/操作,那么可以直接写 // 生成index模块 blog控制器read操作 URL访问地址 Url::build('index/blog/read...name=thinkphp 不在路由规则里面的变量会直接使用普通URL参数方式。 需要注意是,URL地址生成不会检测路由有效性,只是按照给定路由地址和参数生成符合条件路由规则。...使用控制器方法生成 如果你路由地址是采用控制器方法,并且路由定义如下: // 这里采用配置方式定义路由 动态注册方式一样有效 Route::get('blog/:id', '@index/blog...使用助手函数 url('@index/blog/read', 'id=5'); 那么自动生成URL地址变为: /index.php/blog/5.html 使用方法生成 如果你路由地址是路由到类方法...那么可以使用如下方式生成: // 生成index模块 blog控制器read操作 URL访问地址 Url::build('blog?id=5'); url('blog?

    1.1K20

    PHP面试题,面试必看!

    控制器 控制器命名空间有所调整,并且可以无需继承任何控制器类。...5.View并不是理想view,理想view可能只是html代码,不会涉及PHP代码。 3、==Lavarel简单介绍==:Laravel是一套简洁,优雅PHP WEB开发框架。...2.配置简单,全部配置使用PHP脚本来配置,执行效率高; 3.具有基本路由功能,能够进行一定程度路由; 4.具有初步Layout功能,能够制作一定程度界面外观; 5.数据库层封装不错,...post是通过HTTP post机制,将表单内各个字段与其内容放置HTML HEADER内一起传送到ACTION属性所指URL地址。用户看不到这个过程。 3....类型方法或属性 ==private: 私有类型:== 该类型属性或方法只能在该类中使用该类实例、子类、子类实例中都不能调用私有类型属性和方法 写出获取当前时间戳函数,及打印前一天时间方法

    2K20

    -CodeIgniter URL

    CodeIgniter URL 默认情况下,CodeIgniter URL 被设计成对搜索引擎和用户友好样式。...不同于使用传统动态系统中使用代词标准 “查询字符串” 方式,CodeIgniter 使用基于段方法: example.com/news/article/my_article URI 分段 如果遵循模型...-视图-控制器模式,那么 URI 每一段通常表示下面的含义: example.com/class/method/ID 第一段表示要调用控制器 类 ; 第二段表示要调用 函数 或 方法 ;...此外,可以通过 URI 路由 方式进行重定向你 URL 从而使得程序更加灵活。...-d RewriteRule ^(.*)$ index.php/$1 [L] 在上面的例子,除已存在目录和文件外,其他 HTTP 请求都会经过你 index.php 文件。

    2.3K20
    领券