Professional Documents
Culture Documents
07 YiiController
07 YiiController
Phần trước ta đã tiến hành cấu hình url cho frontend và backend xong rồi, bài này ta sẽ tiến hành tạo và chạy
controller đầu tiên trong ứng dụng web yii2 framework
Cũng như các framework khác, yii2 cũng chia làm 3 mục controllers, models, views. Controller nhận request từ người
dùng sau đó xử lý, lấy dữ liệu từ database lên thông qua models, sau đó kết quả đổ ra views cho người dùng.
Trong Yii2 có một phần giúp ta có thể tạo controllers, models, views... hay mạnh hơn là nó có thể tạo ra một CRUD
hoành chỉnh có đầy đủ chức năng list, add, edit và delete đó là Gii. Phần này tôi sẽ hướng dẫn các bạn vào một bài
sau chi tiết hơn, ở đây ta sẽ thao tác tạo file đơn giản
1. Tạo file frontend\controllers\HelloController.php, Yii2 quy định tên controller chữ đầu tiên sẽ viết hoa và
kèm theo từ Controller, từ Controller cũng phải viết hoa chữ C.
1 <?php
2
3 namespace frontend\controllers;
4
5 use Yii;
6 use yii\web\Controller;
7
8 Class HelloController extends Controller
{
9 public function actionIndex()
10 {
11 Yii::$app->view->title = 'Yii2 Framework - Hello world';
12
13 return $this->render('index', ['hello' => 'Yii2 Franework -
14 Hello world']);
}
15 }
16
Trong đó
Yii2 sử dụng namespace, nôm na là cứ ở thư mục nào ta dùng namespace đúng đường dẫn đến thư mục
đó
Khái niệm use cũng giống như include file
Tên class phải viết giống như tên file
Các class ta viết ra được kế thừa từ class Controller của yii2
Một acction trong Yii2 được bắt đầu từ action sau đó là tên action, chữ cái đầu viết hoa, ở đây ta đang
có actionIndex()
Cũng như các framework khác, Yii2 sử dụng mảng để truyền giá trị từ controller xuống view, ở phiên bản php 5.4 trở
lên ta sẽ gặp khái niệm mảng là [] (hai dấu ngoặc vuông).
Ở trên ta đang truyền một biến hello có giá trị là 'Yii2 Franework - Hello world' xuống view
return $this->render('index',['hello' => 'Yii2 Franework - Hello
1 world']);
2. Tạo file frontend\views\hello\index.php để hiển thị kết quả từ controller, Ở đây controller của chúng ta là
Hello nên trong folder Views chúng ta sẽ có folder hello tương ứng với controller nhé.
Trong file frontend\views\hello\index.php ta sẽ nhận giá trị biến truyền từ controller xuống, echo kết quả
1 <h3><?= $hello ?></h3>
Sau khi tạo xong, ta tiến hành chạy controller bằng url sau
1 http://yiiadvanced/?r=hello
Nếu như lúc đầu ta có thể chạy controller bằng http://localhost/yii2adv/frontend/web/hello thì sau khi ta cấu hình
loại bỏ fronted/web và backend/web sẽ không chạy được bằng url này nữa. Để chạy được theo Url dạng này
1 http://yiiadvanced/hello
Thì ta cần cấu hình trong file frontend\config\main.php một chút, ta thêm vào components nội dung sau
- Thêm baseUrl
1 'request' => [
2 'baseUrl' => '/',
3 ],
Như vậy là chúng ta đã cấu hình và chạy ứng dụng đầu tiên trên Yii2 framework, tuy nhiên chúng ta cần chú ý một
số điểm sau:
- Yii2 Framework bắt buộc chạy từ phiên bản php 5.4 trở lên
- Yii2 sử dụng mảng bằng đấu [] , và tất nhiên array vẫn sử dụng bình thường
- Yii2 hay sử dụng cấu trúc <?= $ten_bien ?> để xuất giá trị
Phần này chúng ta chưa tìm hiểu model, phần model thao tác với database tương đối rộng, ta sẽ tìm hiểu vào bài
viết sau