Yii-create-page

提供:Dev Guides
移動先:案内検索

Yii-ページの作成

ここで、アプリケーションに*「Hello world」*ページを作成します。 ページを作成するには、アクションとビューを作成する必要があります。

アクションはコントローラーで宣言されます。 エンドユーザーは、アクションの実行結果を受け取ります。

ステップ1 *-クラスファイルcontrollers/*SiteController.php で定義されている既存の SiteController でspeakアクションを宣言します。

<?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-postはアクションメソッド actionAddPost に対応します。

上記のコードでは、「out」*関数はGETパラメーター *$ message を取ります。 また、 ’render’ というメソッドを呼び出して、speakというビューファイルをレンダリングします。 メッセージパラメータをビューに渡します。 レンダリング結果は、完全なHTMLページです。

*View* は、応答のコンテンツを生成するスクリプトです。 発言アクションの場合、メッセージを印刷する発言ビューを作成します。 renderメソッドが呼び出されると、 *view/controllerID/vewName.php* としてPHPファイル名を探します。

ステップ2 *-したがって、views/siteフォルダー内に、次のコードで *speak.php というファイルを作成します。

<?php
   use yii\helpers\Html;
?>
<?php echo Html::encode($message); ?>
*XSS* 攻撃を回避するために、印刷前にメッセージパラメータをHTMLエンコードすることに注意してください。

ステップ3 *-Webブラウザに次のように入力します *http://localhost:8080/index.php?r = site/speak&message = hello%20world

次のウィンドウが表示されます-

Speak PHP File

URLの 'r' パラメーターはルートを表します。 ルートのデフォルト形式は controllerID/actionID です。 この場合、ルートサイト/スピークは SiteController クラスとスピークアクションによって解決されます。