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]); 
      } 
   } 
?>

我们将speak操作定义为一个名为actionSpeak的方法。在Yii中,所有操作方法都以action开头。这就是框架区分操作方法和非操作方法的方式。如果操作ID需要多个单词,则它们将用短划线连接。因此,操作ID add-post对应于操作方法actionAddPost

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

视图是一个生成响应内容的脚本。对于speak操作,我们创建一个打印我们消息的speak视图。当调用render方法时,它会查找名为view/controllerID/vewName.php的PHP文件。

步骤 2 − 因此,在views/site文件夹内创建一个名为speak.php的文件,内容如下。

<?php 
   use yii\helpers\Html; 
?> 
<?php echo Html::encode($message); ?> 

请注意,我们在打印之前对message参数进行了HTML编码,以避免XSS攻击。

步骤 3 − 在您的Web浏览器中输入https://127.0.0.1:8080/index.php?r=site/speak&message=hello%20world

您将看到以下窗口:

Speak PHP File

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

广告