Yii 创建页面

现在我们将在您的应用程序中创建一个 “Hello world” 页面。要创建一个页面,我们必须创建一个动作和一个视图。

操作在控制器中声明。最终用户将收到一个动作的执行结果。

第1步 - 在现有的 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]);
      }
   }
?>

我们定义的说话动作作为调用的方法 actionSpeak 。在Yii中,所有的动作方法都以单词动作为前缀。这就是框架如何区分行动方式与非行动方式。如果动作ID需要多个单词,那么它们将通过破折号连接起来。因此,动作ID添加后对应于动作方法 actionAddPost

在上面给出的代码中, 'out' 函数采用GET参数 $ message 。我们也调用一个名为 'render' 的方法来渲染一个叫做speak的视图文件。我们将消息参数传递给视图。渲染结果是一个完整的HTML页面。

视图 是生成响应内容的脚本。对于讲话动作,我们创建一个讲话视图来打印我们的信息。当调用render方法时,它将查找PHP文件名称为 view / controllerID / vewName.php

第2步 - 因此,在views / site文件夹 使用以下代码创建一个名为 speak.php 的文件。

<?php
   use yii\helpers\Html;
?>
<?php echo Html::encode($message); ?>

请注意,我们在打印之前对消息参数进行HTML编码以避免 XSS 攻击。

第3步 - 在Web浏览器中输入以下内容 :http:// localhost:8080 / index.php?r = site / speak&message = hello%20world

你会看到下面的窗口 -

讲PHP文件

URL中的 'r' 参数代表路由。路由的默认格式是 controllerID / actionID 。在我们的例子中,路由站点/ speak将由 SiteController 类和讲话动作解决。

下一章:Yii 应用程序结构

整个代码库中只有一个可供公开的Web文件夹。这是网络目录。Web根目录之外的其他文件夹对于Web服务器而言是无法访问的。注 - 所有项目依赖关系都位于 composer.json 文件中。Yii2有一些重要的软件包已经 ...