Yii - 创建页面

  • 简述

    现在我们将在您的应用程序中创建一个“Hello world”页面。要创建一个页面,我们必须创建一个动作和一个视图。
    动作在控制器中声明。最终用户将收到一个动作的执行结果。
    第 1 步- 在类文件 controllers/SiteController.php中定义的现有SiteController中声明说话动作。
    
    <?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]); 
          } 
       } 
    ?>
    
    我们将说话动作定义为一个名为actionSpeak的方法。在 Yii 中,所有的动作方法都以 action 为前缀。这就是框架区分动作方法和非动作方法的方式。如果操作 ID 需要多个单词,则它们将由破折号连接。因此,动作 ID add-post 对应于动作方法actionAddPost
    在上面给出的代码中,'out'函数采用 GET 参数$message。我们还调用了一个名为“render”的方法来渲染一个名为 speak 的视图文件。我们将消息参数传递给视图。渲染结果是一个完整的 HTML 页面。
    View是一个生成响应内容的脚本。对于说话动作,我们创建了一个打印我们的消息的说话视图。当调用 render 方法时,它会查找 PHP 文件名view/controllerID/vewName.php
    第 2 步- 因此,在 views/site 文件夹中创建一个名为speak.php的文件,其中包含以下代码。
    
    <?php 
       use yii\helpers\Html; 
    ?> 
    <?php echo Html::encode($message); ?> 
    
    请注意,我们在打印之前对 message 参数进行了 HTML 编码以避免XSS攻击。
    第 3 步- 在您的网络浏览器http://localhost:8080/index.php?r=site/speak&message=hello%20world中键入以下内容。
    您将看到以下窗口 -
    说 PHP 文件
    URL 中的'r'参数代表路由。路由的默认格式是controllerID/actionID。在我们的例子中,路由 site/speak 将由SiteController类和 speak 动作解决。