Bài trước chúng ta đã cùng tìm hiểu về cấu trúc thư mục của Laravel rồi. Ở bài này chúng ta sẽ tìm hiểu tiếp về route trong Laraver.
1, Route trong laravel là gì?
-Route trong Larvel cũng như các framework khác đều có chức năng là định ra các dạng resquest(hiểu nôm na là url) định sẵn và cũng có các action( hành động) do chúng ta định nghĩa cho nó . Hơi khó hiểu đúng không các bạn? Mình sẽ trình bày ví dụ cụ thể ở dưới cho mọi người dễ hiểu.
2,Các Loại Route trong Larvel.
-Laravel là một framework hỗ trợ chúng ta rất đa dạng về route, và cũng rất dễ sử dụng. Nó gồm có các loại như sau:
- Route::get nhận resquest với phương thức GET.
- Route::post nhận resquest với phương thức POST.
- Route::put nhận resquest với phương thức PUT.
- Route::delete nhận resquest với phương thức DELETE.
- Route::match kết hợp nhiều phương phức như POST,GET,PUT,..
- Route::any nhận tất cả các phương thức.
- Route::group tạo ra các nhóm route.
- Route::controller gọi đến controller tương ứng mà chúng ta tự định.
- Route::resource sử dụng với resource controller.
3,Sử dụng route trong Laravel.
-Để sử dụng được route thì các bạn mở thư mục laravel vừa tạo ở bài 1 sau đó chúng ta truy cập routes/web.php để bắt đầu viết code route.
a) Route::get
-Đây là route sẽ tiếp nhận các request với phương thức GET.
-Cú Pháp:
Route::get($url, $action);
Trong đó: $url là đường dẫn của route, $action là các hành động thực hiện trong router đó.
-Ví Dụ:
- Ví dụ mình muốn khi người dùng vào http://localhost/welcome (ở đây server ảo của mình là localhost) thì sẽ cho in ra chữ "Chào mừng các bạn đã đến với toidicode.com" thì mình sẽ định route như sau.
Route::get('/welcome', function(){ return 'Chào mừng các bạn đã đến với toidicode.com'; });
hoặc có thể sử dụng 2 cách sau nữa nhưng mình sẽ giải thích thêm ở phần controller sau.
Route::get('welcome', '[email protected]');
hoặc
Route::get('welcome', ['as'=>'name','uses'=>'[email protected]']);
- Ngoài ra vẫn còn 1 kiểu nữa nhưng mình sẽ nói ở phần view trong laravel nhé.
b) Route::post
-Đối với loại route này thì nó không khác gì với Route::get() ngoài : Route::get() nhận phương phương thức GET còn Route::post() nhận phương thức POST. -Cú Pháp:
Route::post($url, $action);
c)Route::match
-Nếu muốn sử dụng hai phương thức GET,POST mà không muốn dùng phương thức PUT,PATCH,DELE,... thì làm sao nhỉ? .Nhận thấy điều đó nên Laravel đã cho chúng ta thêm một route nữa là match route.
-Cú Pháp:
Route::match('phuong thuc', 'url', 'action');
- Phương thức: có thể là một mảng POST,GET,... vd: ['POST','GET']
- url: thì không khác gì như Route::get.
- action: cũng không khác gì Route::get.
d)Route::any
-Sử dụng một số phương thức trong route thì dùng Route::any() rồi, còn nếu như muốn dùng tất cả các phương thức thì chẳng lẽ chúng ta cứ phải viết đi viết lại 1 url với từng phương thức sao? Cũng vì điều này mà Laravel đã cung cấp cho chúng ta Route::any().
-Cú pháp:
Route::any($url, $action);
-Còn cách sử dụng thì không khác gì Route::get() cho mấy.
3,Lời Kết.
-Ở bài này chúng ta đã tìm hiểu một số route trong Laravel rồi, còn những route put,delete thì cũng tương tự như Route::get nhé. Bài sau mình sẽ cùng tìm hiểu về Route::group() và Route::controller().