第1步 - 聲明一個動作 speak 在現有 SiteController, 它這是在類檔 controllers/SiteController.php 中定義的。
<?php namespace app\controllers; use Yii; use yii\filters\AccessControl; use yii\web\Controller; use yii\filters\VerbFilter; use app\models\LoginForm; use app\models\ContactForm; class SiteController extends Controller { /* other code */ public function actionSpeak($message = "default message") { return $this->render("speak",['message' => $message]); } } ?>
我們定義的 speak 動作作為一個名為 actionSpeak 方法。在Yii中,所有操作方法的首碼詞是action。這是框架用於區別非動作的操作方法。如果動作ID需要多個詞語,那麼他們將被由破折號連接。因此,動作ID為add-pos對應的操作方法是AddPost。
在上面的代碼中,函數接受一個GET參數 - $message。也是調用了一個名為“render”方法來渲染一個視圖檔。我們通過 message 參數到視圖。渲染結果是一個完整的HTML頁面。
視圖是生成回應內容的腳本。對於 speak 動作,我們創建列印消息的 speak 視圖。當 render 方法被調用時,它會查找一個名稱為: view/controllerID/vewName.php 的PHP檔。
<?php use yii\helpers\Html; ?> <?php echo Html::encode($message); ?>
第3步 - 在Web流覽器中鍵入以下:http://localhost:8080/index.php?r=site/speak&message=hello%20world

URL中的“r”參數表示路由。路由默認格式為:controllerID/actionID。在我們的例子中,路由 site/speak 將被解析為 SiteController類和 speak 動作。
出錯處理:
解決:
打開檔:config/web.php,找到 'cookieValidationKey' => '', (大概在第12行),隨便寫上一個值,這裏我隨便修改為:
'cookieValidationKey' => 'xuhuhu.com', 就可以了。