控制器controllers-CI(codeigniter)PHP框架
来源: 阅读:3852 次 日期:2014-10-15 10:08:24
温馨提示: 小编为您整理了“控制器controllers-CI(codeigniter)PHP框架”,方便广大网友查阅!

前面文章整体说了一下Codeigniter的访问,其中涉及到route,URL路由设置,下面对CI控制器,在codeigniter里就是一个类文件,用来处理url过来的需求,在mvc架构中controllers主要控调用模型和视图去完成用户的需求,不做任何输出和数据处理。数据处理和输出则是要model层进行操作。

在CI中,控制器是一个类文件,存放在application/controllers目录下,命名根据类名进行命名URL请求控制器: www.anypoetry.com/index.php/控制器名(类名)/方法名(如果没有方法则调用index方法)

一调用类名,比如URL请求为www.anypoetry.com/index.php/pages/则会调用对应的pages的controllers

<?php

class Pages extends CI_Controller {

function __construct() {

parent::__construct();

}

public function index() {

echo 'pages!';

}

}

//这里不应有输出

当前为了观看方便,则进行的输出操作

?>

将上面文件保存为pages.php保存在控制器的文件夹中即可。

要求:

1.必须继承CI主控制类

2.类名首字母必须大写。

二 URL请求控制器方法www.anypoetry.com/index.php/pages/view

这样的url则会调用pages类下的view方法

<?php

class Pages extends CI_Controller {

function __construct()

{

parent::__construct();

}

public function index() {

echo 'pages!';

}

}

public function view(){

echo "调用pages里面的view方法";

}

}

?>

三URL请求控制器方法并传递参数www.anypoetry.com/index.php/pages/show/canshu1/canshu2/canshu3

<?php

class Pages extends CI_Controller {

function __construct()

{

parent::__construct();

}

fublic function index() {

echo 'pages!';

}

}

public function show($c1,$c2,$c3){

echo "参数1".$c1;

echo "参数2".$c2;

echo "参数3".$c3;

}

}

?>

四 URL请求控制器,在控制器里面创建文件夹。控制器里面创建对应的文件夹,则也要再路由application/config/route.php中设置对应的请求控制器的文件夹,仍然拿 上面的pages类为例。

在application/controllers/里面创建了一个wj文件夹,在路由route.php设置如下

$route['wj/pages'] = 'wj/pages';

当URL请求为www.anypoetry.com/index.php/wj/pages/show

则会调用 controllers里面的文件夹wj下面的pages类,并调用的是show方法。

五 在类中重定义控制器路由调用方法,CI控制器提供了一个方法_remap(),如果你在你的URL请求中请求了带实际方法,则不会去调用而是默认的通过_remap()进行判断调用,不会直接调用你请求的方法。

举例:在pages定义类中的_remap如下

function _remap($method,$params = array()){

echo $method;//这里是临时输出调用的方法名

var_dump($params);//获取后面的URL调用参数

$this->$method(); //调用对应的当前类中的方法

}

请求url为 http://www.anypoetry.com/index.php/wj/pages/view/can1/can2

在会调用 _remap输出方法名为view 输出的两个参数为 can1 和can2

然后调用pages类中的view方法

这里需要补充一下的是 $method 是必须参数,$params 不是必须参数

六 其他两个私有方法 和 处理输出 不是很理解,暂时就不在此做介绍了

更多信息请查看IT技术专栏

更多信息请查看网络编程
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!

2025国考·省考课程试听报名

  • 报班类型
  • 姓名
  • 手机号
  • 验证码
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map