Friday, March 18, 2016

Routing và tạo URL thân thiện trong yii2 framework


yii2-url-manager-tutorial
Việc điều hướng và tạo url thân thiện trong yii2 là 1 vấn đề được quan tâm lớn đối với những nhà lập trình . Để sử dụng .Chuyển hướng bạn cần thêm gọi đến components urlManager trong file main.php ở config trong frontend .Ở đây là file urlManager của mình
1
2
3
4
5
6
7
8
9
10
11
12
'urlManager' => [
 'class' => 'yii\web\UrlManager',
 'enablePrettyUrl' => true,
 'showScriptName' => false,
 //'suffix' => '.app',
 'rules' =>
 [
 'trang-chu' =>'site/index',
 'contact/<id:\d+>' => 'site/contact',
 '<alias:\w+>' => 'site/<alias>',
 ]
 ],
Ý nghĩa các giá trị là .Giá trị ‘enablePrettyUrl’ => true ý nghĩa yêu cầu website bật url thân thiện .Giá trị ‘showScriptName’ => false xóa bỏ chữ index.php trên url.Giá trị ‘suffix’ => ‘.app’ ý nghĩa thêm hậu tố vào sau url bạn có thể thêm .html hoặc .php sau đường dẫn url ở đây mình để .app .
Tiếp theo chúng ta sẽ tạo thêm phần .htaccess
1
2
3
4
5
6
RewriteEngine on
# If a directory or a file exists, use the request directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward the request to index.php
RewriteRule . index.php
Vậy là mình đã cấu hình xong ở config giờ đến đến tạo url ở view
1
2
3
<?php
 $url = Url::to(['site/contact','id'=>100]);
?>
Tiếp theo ở rules ở urlManager trong main.php ở config
1
'contact/<id:\d+>' => 'site/contact',
Sau khi ấn vào link ta sẽ nhảy ra url
1
http://localhost/advanced/frontend/web/contact/5
Các bạn chú ý ở đây
1
'contact/<id:\d+>' => 'site/contact',
.Phần ‘contact/<id:\d+>’ là phần link trên url  còn ‘site/contact’ là phần controller xử lý .<id:\d+> d là kí hiệu của digita .Yêu cầu id phải là số .w+ là từ viết tắt của word .

1 Route mặc định -Default Route :

Route mặc định là site nhưng bạn cũng có thể thay đổi nó với dòng lệnh
1
2
3
4
return [
 'defaultRoute' =>'video',
//
],
Ở đây mình để mặc định trỏ về VideoController.php trong controllers

2 Tạo url ở view

Các dạng tùy biến tạo url
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
 $url = Url::to(['site/contact','id'=>100]);
?>
<h1><a href="<?=$url ?>">Xin chào </a></h1>
Bên cạnh đó Yii2 còn hỗ trợ 1 số hàm gọi url mặc định như hàm home
use yii\helpers\Url;
// gọi về trang chủ  URL: /index.php?r=site/index
echo Url::home();
// gọi về  sub-folder of the Web root
echo Url::base();
// gọi url canonical
echo Url::canonical();
// gọi về url trước đó của trang
Url::remember();
echo Url::previous();

3 Tạo rules theo cách riêng của bạn

Bạn muốn người dùng vào link : http://example.com/dang-ki thì funtion signup trong controller user được gọi ra thì hãy làm theo cách sau .Vào phần rules của urlManager ở main bạn thêm dòng
1
'dang-ki' =>'user/signup',
Vậy là bạn đã xong phần url .Đây là 1 phần cực kì quan trọng ảnh hưởng đến quá trình seo website sau này của ban .Chúc các bạn thực hiện thành thạo
Để xem chi tiết hơn xin vui lòng xem video hướng dẫn dưới đây : 

Chúc các bạn thành công !

No comments:

Post a Comment