LARAVEL 4X CĂN BẢN
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Bài 02: Tổng quan về route trong laravel

Trong khuôn khổ bài viết này, mình sẽ giới thiệu đến bạn route trong laravel là gì, và cách sử dụng một vài loại route cơ bản. Bài viết chỉ dừng ở mức tìm hiểu cách sử dụng route trong Laravel chứ không đi vào ứng dụng thực tế, sau khi xong serie căn bản chúng ta sẽ tìm hiểu sâu nó ở một bài khác.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

1. Route trong laravel là gì?

Route dịch ra có nghĩa là tuyến đường, nghe chẳng có tý gì liên quan đến lập trình nhưng ta có thể hiểu rằng route nó nằm vai trò chỉ đường cho yêu cầu (request) đi đến đâu. Ta có thể hiểu nôm na như sau: khi index.php nhận được request từ người dùng, nó sẽ đưa request này cho route, từ route sẽ chỉ dẫn tiếp cho request này đi đến đâu hoặc cũng có thể trả lời ngay tại route.

Ví dụ khi người dùng truy cập vào website với đường dẫn là domain.com/news, thì lúc này Route sẽ nhận được một phần trong URL là /news và nó sẽ xử lý request đó gọi đến Controller News hoặc là một thao tác khác (xử lý thế nào thì tùy vào coder). Đặc biệt hơn các Framework trước đây như Codeigniter là trong Laravel Route có rất nhiều loại khác nhau như Route dành cho phương thức POST, Route dành cho phương thức GET ở cùng một URL.

Tóm lại, ban đầu bạn chỉ cần hiểu cơ bản rằng route trong laravel có nhiệm vụ định hướng request của laravel.

Bài viết này được đăng tại [free tuts .net]

Hầu hết các route của laravel định nghĩa trong file app/routes.php. Và đây là danh sách các loại Route bao gồm các loại cơ bản và thường được sử dụng sau:

  • Route::get phương thức GET
  • Route::post phương thức POST
  • Route::match kết hợp hiều phương phức
  • Route::any nhận tất cả các phương thức
  • Route::filter tạo ra bộ lọc nhằm mục đích nào đó, ví dụ tạo bộ lọc kiểm tra đã đăng nhập hay chưa
  • Route::group gom các route lại với nhau thành một nhóm
  • Route::controller gọi đến controller tương ứng
  • Route::resource sử dụng với resource controller

2. Sử dụng route trong laravel

Lưu ý: Tất cả các đoạn code dành cho Route đều nằm trong file app/routes.php nên những ví dụ dưới đây bạn đều thêm trong file này nhé.

Sử dụng Route::get() trong laravel

Route này sẽ tiếp nhận các request với phương thức GET, cách sử dụng route này khá đơn giản:

Cú pháp:

Route::get($uri, $action);
//trong đó $action có thể là 1 mảng, hàm hoặc 1 chuỗi

Cách sử dung:

Khi action là một hàm:

Giả sử ta cần viết Route cho URL http://tênmiềnảocủabạn/demo với phương thức GET thì ta thêm đoạn code như sau:

Route::get('/demo',function(){
	return 'Đây là demo đầu tiên';
});
//trong đó: /demo là uri và function callback kia là action

Bạn truy cập vào đường dẫn: http://tênmiềnảocủabạn/demo. Ví dụ của mình là http://demolaravel.com/demo thì sẽ xuất hiện dòng chữ 'Đây là demo đầu tiên' trên trình duyệt.

/su-dung-route-trong-laravel.PNG

Khi action là 1 mảng:

Có 2 tham số thường được sử dụng trong mảng là name, và uses, ngoài ra bạn còn có thể sử dụng filter trong này. Trong đó name là tên của route mình sẽ đặt, còn uses sẽ gọi đến phương thức của Controller nào đó (bạn sẽ hiểu rõ hơn ở bài sau, hãy đón đọc wink).

Cú pháp sử dụng:

Route::get($uri,$array);

Bạn mở file app/routes.php và thêm đoạn sau:

Route::get('/array',['name'=>'get.array','uses'=>'HomeController@showWelcome']);
//trong đó /array là uri
//get.array sẽ là tên của route này
//uses route này sẽ gọi đến phương thức showWelcome của HomeController

Bạn truy cập vào đường dẫn: http://tênmiềnảocủabạn/array và sẽ thấy hiện ra một giao diện không khác gì khi bạn chạy http://tênmiềnảocủabạn/ đúng không nào. Tại sao lại vậy? Trước hết bạn nhìn vào đoạn code trên sẽ thấy HomeController và thắc mắc ở đâu ra cái quái này vậy. Câu trả lời là đó là controller mặc định có sẵn khi cài đặt laravel, bạn có thể xem controller này tại file app/controllers/HomeController.php. Khi route này được kích hoạt nó sẽ gọi đến phương thức showWelcome của HomeController và để controller này xử lý việc còn lại.

Khi action là 1 chuỗi:

Cú pháp sử dụng:

Route::get($uri, $string);
//trong đó $string có dạng: têncontroller@phươngthức<br>

Bạn mở file app/routes.php và thêm đoạn sau:

Route::get('/string','HomeController@showWelcome');

Bạn truy cập vào đường dẫn: http://tênmiềnảocủabạn/stringvà sẽ thấy hiện ra một giao diện không khác gì ở trên, nhưng bạn để ý sẽ thấy rằng ở phần này không có tên cho route, tên ở đâycó ý nghĩa chính là sử dụng để gọi lại cho dễ (hãy đợi những bài sau để hiểu rõ hơn).

Sử dụng Route::post() trong laravel

Route này tiếp nhận các request với phương thức POST, các sử dụng và cú pháp không khác gì với Route::get().

Cú pháp:

Route::post($uri, $action);
//uri và action tương tự như Route::get<br />

Chắc hẳn không ít bạn sẽ thắc mắc sao 2 cái giống nhau đến thế thì khi nào nên dùng get khi nào nên dùng post?

Nếu vậy thì tiện đây mình cũng giải đáp luôn, như ở trên mình đã nói get và post nhận 2 request hoàn toàn khác nhau là GET và POST. Bạn nên sử dụng get cho việc lấy dữ liệu như hiển thị bài viết, lấy dữ tiệu bằng ajax, ... Nên sử dụng post khi có thao tác thay đổi cơ sở dữ như thêm, xóa, hay sửa dữ liệu.

Sử dụng Route::match trong laravel()

Ngoài các method POST và GET phổ biến trong laravel còn có thêm PUT, PATCH, DELETE vậy nên sinh ra Route này.

Cú pháp:

Route::match($methods, $uri, $action);
//trong đó $methods có thể là 1 mảng các method như ['GET', 'POST','PUT']
//$uri và $action giống như các route kể trên

Ví dụ: Bạn mở file app/routes.php và thêm đoạn sau:

Route::match(['GET', 'POST','PUT'],'/match',function(){
    return 'match route';
});

Route này sẽ nhận request với 3 method là PUT, POST, GET

Sử dụng Route::any trong laravel()

Cú pháp và cách sử dụng của loại route này không khác Route::get() là mấy, chỉ có điều route này nhận request với tất cả các method như: POST, GET, DELETE, ...

Cú pháp:

Route::any($uri, $action);

3. Kết Luận

Vậy trong bài viết này mình đã giới thiệu sơ qua cho các bạn về 4 loại route cơ bản thường được sử dụng. Ở bài sau mình sẽ tiếp tục giới thiệu những loại route còn lại và tìm hiểu luôn controller trong laravel , hãy đón đọc!.

Cùng chuyên mục:

Cách sử dụng Relationships trong Laravel

Cách sử dụng Relationships trong Laravel

Cách dùng Encryption và decryption trong Laravel

Cách dùng Encryption và decryption trong Laravel

Cách sử dụng Error Handling trong Laravel

Cách sử dụng Error Handling trong Laravel

Cách dùng URL Generation trong Larevel

Cách dùng URL Generation trong Larevel

Cách sử dụng Email Verification trong Laravel

Cách sử dụng Email Verification trong Laravel

Facades là gì? Cách dùng Facades trong Laravel

Facades là gì? Cách dùng Facades trong Laravel

Tìm hiểu và sử dụng Service Provider trong Laravel

Tìm hiểu và sử dụng Service Provider trong Laravel

Sử dụng Service Container trong Laravel dễ dàng

Sử dụng Service Container trong Laravel dễ dàng

Cách xử lý đa ngôn ngữ trong Laravel dễ dàng

Cách xử lý đa ngôn ngữ trong Laravel dễ dàng

Cách sử dụng CQRS trong Laravel từ A đến Z đơn giản

Cách sử dụng CQRS trong Laravel từ A đến Z đơn giản

Cách dùng Event Sourcing trong Laravel

Cách dùng Event Sourcing trong Laravel

Task Scheduling là gì? Cấu hình Task Scheduling trong Laravel

Task Scheduling là gì? Cấu hình Task Scheduling trong Laravel

Cách dùng Queue trong laravel để tạo tác vụ bất đồng bộ

Cách dùng Queue trong laravel để tạo tác vụ bất đồng bộ

Cách tích hợp Vue.js vào Laravel và làm một ứng dụng căn bản

Cách tích hợp Vue.js vào Laravel và làm một ứng dụng căn bản

Cách dùng Long polling trong Laravel để cải thiện trải nghiệm

Cách dùng Long polling trong Laravel để cải thiện trải nghiệm

Dùng Server-Sent Events trong Laravel để làm ứng dụng realtime

Dùng Server-Sent Events trong Laravel để làm ứng dụng realtime

Cách dùng Socket.io trong Laravel để tạo ứng dụng realtime

Cách dùng Socket.io trong Laravel để tạo ứng dụng realtime

Laravel WebSockets, các bước tạo WebSockets trong Laravel

Laravel WebSockets, các bước tạo WebSockets trong Laravel

Real-time web applications là gì ? Tầm quan trọng  trong Laravel

Real-time web applications là gì ? Tầm quan trọng trong Laravel

Cách tạo Database Testing trong Laravel

Cách tạo Database Testing trong Laravel

Top