- ThinkPHP實戰
- 夏磊
- 390字
- 2020-11-28 18:26:53
4.3 動作參數綁定
參數綁定通過直接綁定URL地址中的變量(不包括模塊名、控制器名、動作名)為操作方法的函數形參,可以簡化方法定義。動作參數綁定是默認開啟的,如果需要關閉可以配置“URL_PARAMS_BIND”為“false”。
在前面的內容中,如果需要在動作中獲取GET參數,需要使用$_GET數組,而使用動作參數綁定之后就不需要使用$_GET了。
編輯Application/Home/IndexController.class.php,代碼如下:
<? php namespace Home\Controller; use Think\Controller; class IndexController extends Controller { public function _before_index() { echo 'before'; } public function index() { echo 'index'; } public function _after_index() { echo 'after'; } public function bind($id) { echo $id; } }
新增的bind方法使用了“動作參數綁定”,此處簡單輸出URL變量中的id值,在瀏覽器訪問http://localhost/thinkphp-inaction/chapter-4/home/index/bind/id/1,瀏覽器輸出“1”。
需要注意的是,如果使用了“動作參數綁定”的動作形參未指定默認值,訪問的時候URL中必須包含該變量,否則系統提示“參數錯誤或者未定義”。打開瀏覽器訪問http://localhost/thinkphp-inaction/chapter-4/home/index/bind,瀏覽器輸出“參數錯誤或者未定義”。
解決此問題的方法是給相應參數添加默認值,更改后的bind方法代碼如下:
public function bind($id = 1) { echo $id; }
打開瀏覽器訪問http://localhost/thinkphp-inaction/chapter-4/home/index/bind,瀏覽器輸出“1”。