yii2怎麼使用控制器

yii2是一個很好的框架,首先我們來看yii2中控制器可以幹些什麼:

1 .重定向 $this->redirect()(比如說做了一個登錄界面,那括號裏的url可以是你的主頁)
2 .回到首頁 $this->goHome()
3 .返回 $this->goBack()
4 .刷新當前頁面 $this->refresh()
5 .渲染視圖 $this->render(視圖,注入視圖數組數據)
6 .渲染沒有layout的視圖 $this->renderPartial(視圖,注入視圖數組數據)


先看一個簡單例子:

<?php
namespace app\controllers;	//定義命名空間
use yii\web\Controller;		//引入命名空間

class TestController extends Controller{

	public function actionIndex(){
		echo 'hello world!';
	}
}
?>
這個文檔保留在controllers目錄下,然後用網址打開便可看到hello world了。


關於控制器ID怎麼寫(也就是controllers目錄裏文件的名字怎麼起),規則如下:

 要將控制器ID轉換控制器類的名字,應該做到以下幾點 -
  1.  刪除連字符
   2. 替換反向斜線
   3. 添加Controller後綴
   4.前面加上控制器命名空間

示例:
    page 變成 app\controllers\PageController.
    post-article 變成 app\controllers\PostArticleController.
    user/post-article 變成 app\controllers\user\PostArticleController.
    userBlogs/post-article 變成 app\controllers\userBlogs\PostArticleController.


下面我們來看使用action(有內聯和獨立兩種方法),每個控制器都有一個默認動作,所以理解後便可自己改爲其他動作:

首先說下動作ID(我一般用內聯動作),規則如下:
   1. 轉換動作ID的所有單詞的第一個字母轉換成大寫
    2.刪除連字符
    3.添加 action 前綴

示例:
    index 變成 actionIndex.
    hello-world(如在上面的例子) 變成 actionHelloWorld.、

內聯動作上面的例子就是這個。

順便看一下怎麼創建獨立action:

第1步- 在項目根內創建 components 文件夾。在文件夾內創建一個名爲 GreetingAction.php 的文件,並使用下面的代碼。

<?php 
   namespace app\components;
   use yii\base\Action;
   class HeyAction extends Action {
      public function run() {
         return "hey";
      }
   }
?>
第2步 - 修改上述hello world動作的Test文件使用這種方式。

<?php
   namespace app\controllers;
   use yii\web\Controller;
   class TestController extends Controller {
      public function actions() {
         return [
            'hey' => 'app\components\HeyAction',
         ];
      }
?>

訪問瀏覽器這個的url便可看到hey。


另外, 控制器儘量滿足:
   1. 每一個動作都應該包含的代碼只有幾行,儘量小
    2.用於響應視圖
    3.不要嵌入HTML
    4.訪問請求數據
    5.調用模型的方法
    6.不處理請求數據。這些應在模型中進行處理



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章