Yii創建頁面

現在,我們要在應用程式中創建一個“Hello World”的頁面。要創建一個頁面,我們必須創建一個動作和視圖。
動作要在控制器中聲明。最終用戶將收到一個動作的執行結果。

第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檔。

第2步 - 因此,在檔夾 views/site 內創建一個名為 speak.php 檔,並使用下麵的代碼。
<?php
   use yii\helpers\Html;
?>
<?php echo Html::encode($message); ?>
需要注意的是,message參數列印之前進行HTML編碼以避免XSS攻擊。

第3步 - 在Web流覽器中鍵入以下:http://localhost:8080/index.php?r=site/speak&message=hello%20world 

就會看到如下所示窗口的輸出結果 -
Yii創建頁面

URL中的“r”參數表示路由。路由默認格式為:controllerID/actionID。在我們的例子中,路由 site/speak 將被解析為 SiteController類和 speak 動作。


出錯處理:

解決:

打開檔:config/web.php,找到 'cookieValidationKey' => '', (大概在第12行),隨便寫上一個值,這裏我隨便修改為:

'cookieValidationKey' => 'xuhuhu.com', 就可以了。


上一篇: Yii安裝 下一篇: Yii應用程式結構