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 中,所有动作方法都以单词 action 为前缀。这是框架区分动作方法和非动作方法的方式。如果动作 ID 需要多个单词,则它们将用破折号连接起来。因此,动作 ID add-post 对应于动作方法 actionAddPost

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

View 是一个生成响应内容的脚本。对于发言动作,我们创建一个打印消息的发言视图。调用 render 方法时,它会查找名为 view/controllerID/vewName.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

您将看到以下窗口 −

Speak PHP File

URL 中的 'r' 参数代表路由。路由的默认格式为 controllerID/actionID。在我们的例子中,路由 site/speak 将由 SiteController 类和 talk 操作解析。