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 。
你会看到下面的窗口 -
URL中的 'r' 参数代表路由。路由的默认格式是 controllerID / actionID 。在我们的例子中,路由站点/ speak将由 SiteController 类和讲话动作解决。
下一章:Yii 应用程序结构
整个代码库中只有一个可供公开的Web文件夹。这是网络目录。Web根目录之外的其他文件夹对于Web服务器而言是无法访问的。注 - 所有项目依赖关系都位于 composer.json 文件中。Yii2有一些重要的软件包已经 ...