Yii 创建页面
现在我们将在您的应用程序中创建一个“Hello world”页面。要创建页面,我们必须创建一个动作和一个视图。
动作是在控制器中声明的。最终用户将收到动作的执行结果。
步骤1 - 在现有的 SiteController 中声明speak动作,该动作在类文件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") { returnthis->render("speak",['message' => $message]);
}
}
?>
我们将speak动作定义为一个名为actionSpeak的方法。在Yii中,所有的动作方法都以action开头。这样框架就能区分动作方法和非动作方法了。如果一个动作ID需要多个单词,则它们会用破折号连接起来。因此,动作IDadd-post对应的是动作方法actionAddPost。
在上面的代码中,‘out’函数接收一个名为$message的GET参数。我们还调用了一个名为‘render’的方法来渲染一个叫做speak的视图文件。我们将message参数传递给视图。渲染的结果是一个完整的HTML页面。
视图 是一个生成响应内容的脚本。对于speak动作,我们创建了一个名为speak的视图,用于打印我们的消息。当调用render方法时,它会寻找一个名为view/controllerID/viewName.php的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 。在我们的例子中,路由site/speak将由 SiteController 类和speak动作处理。