Yii - Tạo trang
Bây giờ chúng ta sẽ tạo một “Hello world”trang trong ứng dụng của bạn. Để tạo một trang, chúng ta phải tạo một hành động và một chế độ xem.
Các hành động được khai báo trong bộ điều khiển. Người dùng cuối sẽ nhận được kết quả thực thi của một hành động.
Step 1 - Khai báo hành động nói trong hiện tại SiteController, được định nghĩa trong bộ điều khiển tệp lớp /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]);
}
}
?>
Chúng tôi đã định nghĩa hành động nói là một phương thức được gọi là actionSpeak. Trong Yii, tất cả các phương thức hành động đều có tiền tố là hành động từ. Đây là cách khung phân biệt các phương pháp hành động với các phương pháp không hành động. Nếu một ID hành động yêu cầu nhiều từ, thì chúng sẽ được nối với nhau bằng dấu gạch ngang. Do đó, phần bổ trợ ID hành động tương ứng với phương thức hành độngactionAddPost.
Trong đoạn mã được đưa ra ở trên, ‘out’ hàm nhận tham số GET, $message. Chúng tôi cũng gọi một phương thức có tên‘render’để hiển thị một tệp dạng xem được gọi là speak. Chúng tôi chuyển tham số tin nhắn cho chế độ xem. Kết quả hiển thị là một trang HTML hoàn chỉnh.
Viewlà một tập lệnh tạo ra nội dung của một phản hồi. Đối với hành động nói, chúng tôi tạo chế độ xem nói để in thông điệp của chúng tôi. Khi phương thức kết xuất được gọi, nó sẽ tìm kiếm các tên tệp PHP làview/controllerID/vewName.php.
Step 2 - Do đó, bên trong thư mục views / site tạo một tệp có tên speak.php với đoạn mã sau.
<?php
use yii\helpers\Html;
?>
<?php echo Html::encode($message); ?>
Lưu ý rằng chúng tôi mã hóa thông số tin nhắn HTML trước khi in để tránh XSS tấn công.
Step 3 - Nhập nội dung sau vào trình duyệt web của bạn http://localhost:8080/index.php?r=site/speak&message=hello%20world.
Bạn sẽ thấy cửa sổ sau:
Các ‘r’tham số trong URL là viết tắt của tuyến đường. Định dạng mặc định của tuyến đường làcontrollerID/actionID. Trong trường hợp của chúng tôi, trang web / nói tuyến đường sẽ được giải quyết bởiSiteController lớp và hành động nói.