简述
现在我们将在您的应用程序中创建一个“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中键入以下内容。
您将看到以下窗口 -
URL 中的'r'参数代表路由。路由的默认格式是controllerID/actionID。在我们的例子中,路由 site/speak 将由SiteController类和 speak 动作解决。