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 路由 ,傳遞到你的方法的參數將是路由後的參數。