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") { 
         return $this->render("speak",['message' => $message]); 
      } 
   } 
?>

我们将发言动作定义为名为actionSpeak的方法。在 Yii 中,所有操作方法都以单词 action 为前缀。这就是框架区分行动方法和非行动方法的方式。如果操作 ID 需要多个单词,那么它们将通过破折号连接起来。因此,操作 ID add-post 对应于操作方法actionAddPost

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

视图是一个生成响应内容的脚本。对于说话动作,我们创建一个打印消息的说话视图。当调用 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

您将看到以下窗口 -

说出 PHP 文件

URL 中的“r”参数代表路由。路由的默认格式是controllerID/actionID。在我们的例子中,站点/发言路线将由SiteController类和发言操作解析。