1、什么是控制器?简而言之,控制器就是一个类文件,是一种可以和URI关联在一块儿的方式来命名的。php
URI: example.com/index.php/nlog/html
上个例子中 CodeIgniter将会尝试查询一个名为Blog.php的控制器并加载它。app
当控制器的名称和URI的第一段匹配上时,它将会被加载。、编辑器
让咱们来试试看:Hello World!ide
接下来你会看到如何建立一个简单的控制器,打开你的文本编辑器,新建一个文件Blog.php,而后放入如下代码:codeigniter
<?php class Blog extends CI_controller { public function index() { echo "hello world!"; } }
而后将文件保存在application/controllers/目录下面。ui
注意: 文件名必须是大写字母开头,如:'Blog.php'。this
如今使用相似下面的URL来访问你的站点:spa
example.com/index.php/blog/code
若是一切正常,你将看到:Hello World!
注意: 类名必须以大写字母开头。
这是有效的:
<?php class Blog extends CI_Controller { }
这是无效的:
<?php class blog extends CI_Controller { }
另一定要确保您的控制器继承了父控制器类,这样它才能使用父类的方法。
方法:
上例中,方法名为index()。"index"方法老是在URI的第二段为空时被调用。另外一种显示"Hello World!"的方法是:example.com/index.php/blog/index/
URI中的第二段用于决定调用控制器中的哪一个方法:
让咱们试一下,向你的控制器添加一个新的方法:
<?php class Blog extends CI_controller { public function index() { echo "hello world!"; } public function comments() { echo " Look at this!"; } }
如今,经过下面的 URL 来调用 comments 方法:
example.com/index.php/blog/comments/
2、经过URI分段向你的方法传递参数
若是你的URI多于两个段,多余的段将做为参数传递到你的方法中。
假如你的URI是这样:example.com/index.php/products/shoes/sandals/123
你的方法将会接收到第三段第四段的两个参数("sandals"和"123"):
<?php class Products extends CI_controller { public function shoes($sandals,$id) { echo $sandals; echo $id; } }
注意: 若是你使用了 URI 路由 ,传递到你的方法的参数将是路由后的参数。