LARAVEL TUTORIALS
10 thủ thuật Lavavel giúp bạn code nhanh hơn! Routing trong Laravel, cách tạo Route và sử dung AZ Tạo Middleware trong Laravel đơn giản trong 5 phút Xử lý Authentication và Authorization trong Laravel Event và listener trong Laravel, cách tạo và quản lý cơ bản nhất Tạo broadcast event trong Laravel dễ dàng trong 10 phút Xử lý Form Validation trong Laravel từ A - Z Cách tạo Session và cookie trong Laravel dễ dàng như ăn cháo Top 10 Package Lavavel thường dùng trong dự án Laravel Sử dụng Task trong Laravel đơn giản trong 10 phút. Cách tạo API trong Laravel đơn giản chỉ trong 5 phút Cách tạo job trong Laravel sao cho hiệu quả? Queues trong Laravel, dùng để xử lý các tác vụ mất nhiều thời gian Cache trong Laravel, các loại Cache thường dùng trong Laravel Redis trong Laravel, biết cách sử dung Redis Laravel trong 5 phút Sử dụng Memcache trong Laravel tăng tốc độ truy cập website Unit Test trong Laravel, thực hành tạo testing Laravel A-Z 10 thủ thuật tối ưu quá trình Testing trong Laravel Top 7 thư viện Testing Laravel được dùng nhiều nhất Testbench và Orchestra Testbench trong Laravel, kiểm thử Laravel dễ dàng Cách dùng Browser Testing (Laravel Dusk) trong Laravel Cách tạo test case cho Controller trong Laravel Cách tạo test case cho Model trong Laravel Cách tạo Database Testing trong Laravel Real-time web applications là gì ? Tầm quan trọng trong Laravel Laravel WebSockets, các bước tạo WebSockets trong Laravel Cách dùng Socket.io trong Laravel để tạo ứng dụng realtime Dùng Server-Sent Events trong Laravel để làm ứng dụng realtime Cách dùng Long polling trong Laravel để cải thiện trải nghiệm Cách tích hợp Vue.js vào Laravel và làm một ứng dụng căn bản 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 Event Sourcing trong Laravel Cách sử dụng CQRS trong Laravel từ A đến Z đơn giản Sử dụng Service Container trong Laravel dễ dàng Cách xử lý đa ngôn ngữ trong Laravel dễ dàng Tìm hiểu và sử dụng Service Provider trong Laravel Facades là gì? Cách dùng Facades trong Laravel Cách sử dụng Email Verification trong Laravel Cách dùng URL Generation trong Larevel Cách sử dụng Error Handling trong Laravel Cách dùng Encryption và decryption trong Laravel Cách sử dụng Relationships trong Laravel Bài 01: Laravel là gì? Hướng dẫn cài đặt laravel trên windows Sử dụng Event trong Laravel Một cách quản lý filter trong Laravel
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Routing trong Laravel, cách tạo Route và sử dung AZ

Routing trong Laravel ,cách tạo Routing trong Lavavel gồm: Tạo Route trong file , Tạo Route trong Controlller.

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.

Routing là một trong những thành phần quan trọng của một ứng dụng Laravel. Nó cho phép ứng dụng xử lý các HTTP request và chuyển tiếp chúng đến các Controller hoặc các thao tác khác như xử lý dữ liệu, đăng nhập, xác thực,...

Trong bài biết này mình sẽ giới thiệu một số khái niệm cơ bản cũng như cú pháp và cách tạo về Routing.

1. Route là gì trong Laravel?

Route trong Laravel là một cơ chế quản lý URL trong framework Laravel. Route cho phép bạn định tuyến các URL của trang web của bạn đến các hàm xử lý tương ứng. Khi một người dùng gửi yêu cầu đến một URL, Laravel sẽ tìm xem URL đó có được định tuyến trong file routes hay không. Nếu tìm thấy, Laravel sẽ gọi hàm xử lý tương ứng với URL đó.

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

Ví dụ:

Route::get('/', function () { return 'Hello World'; });

Trên đây là một ví dụ về việc định tuyến URL "/" với một hàm callback trả về chuỗi "Hello World".

2. Cú pháp route trong laravel

Basic Routing - Những điều khiển căn bản

Trong Laravel, cú pháp Basic Routing giúp bạn định tuyến đường dẫn URL đến một hoạt động hoặc một hàm xử lý trong ứng dụng của bạn.

Cách sử dụng cú pháp này là bằng cách sử dụng hàm Route:: để định tuyến URL và hàm xử lý tương ứng.

Ví dụ, nếu bạn muốn định tuyến URL "/home" đến hàm xử lý "HomeController@index", bạn có thể sử dụng cú pháp sau:

Route::get('/home', 'HomeController@index');

Bạn cũng có thể sử dụng các phương thức khác như 'post', 'put', 'delete' để định tuyến cho các yêu cầu HTTP khác.

Route::post('/submit-form', 'FormController@submit');

Ngoài ra, bạn cũng có thể định tuyến với tham số, ví dụ:

Route::get('/user/{id}', 'UserController@show');

Trong ví dụ trên, tham số ' {id} ' sẽ được truyền vào hàm xử lý 'UserController@show' như một tham số.

Cú pháp Basic Routing trong Laravel cung cấp một cách đơn giản và linh hoạt để định tuyến URL trong ứng dụng của bạn.

Route Parameters - Sử dụng tham số trong bộ định tuyến

Route Parameters là một tính năng trong Laravel cho phép bạn sử dụng tham số trong địa chỉ URL để xác định một hoạt động hoặc hàm xử lý tương ứng.

Ví dụ, bạn có thể định tuyến một URL như sau:

Route::get('/user/{id}', 'UserController@show');

Trong ví dụ trên, tham số {id} sẽ được truyền vào hàm xử lý UserController@show như một tham số.

Bạn cũng có thể định tuyến với nhiều tham số, ví dụ:

Route::get('/post/{postId}/comment/{commentId}', 'CommentController@show');

Trong ví dụ trên, hai tham số {postId} {commentId} sẽ được truyền vào hàm xử lý CommentController@show như hai tham số tương ứng.

Bạn cũng có thể đặt ràng buộc cho các tham số, ví dụ:

Route::get('/user/{id}', 'UserController@show')->where('id', '[0-9]+');

Trong ví dụ trên, chúng ta đang yêu cầu rằng tham số id phải là một chuỗi số. Nếu không, Laravel sẽ trả về một lỗi 404.

Sử dụng Route Parameters là một cách linh hoạt và tiện lợi để truyền tham số cho hàm xử lý trong bộ định tuyến của Laravel.

Route Filters - Bộ lọc trong định tuyến

Bộ lọc trong định tuyến (route filters) cho phép bạn thực hiện một số hành động nhất định trước khi xử lý yêu cầu HTTP. Ví dụ, bạn có thể sử dụng bộ lọc để xác thực người dùng, kiểm tra quyền truy cập hoặc lưu trữ thông tin về truy cập trong một bảng ghi lịch sử.

Để tạo một bộ lọc trong Laravel, bạn cần tạo một class mới với một phương thức "handle" và sau đó đăng ký bộ lọc với Laravel. Ví dụ, để tạo một bộ lọc kiểm tra xem người dùng đã đăng nhập hay chưa, bạn có thể sử dụng đoạn mã sau:

class Authenticate
{
    public function handle($request, Closure $next)
    {
        if (!Auth::check()) {
            return redirect('login');
        }
        return $next($request);
    }
}

Sau đó, bạn có thể đăng ký bộ lọc với Laravel bằng cách sử dụng phương thức "middleware" trong class Route:

Route::get('dashboard', ['middleware' => 'auth', function () {
    //
}]);

Bạn cũng có thể đăng ký bộ lọc với toàn bộ nhóm định tuyến bằng cách sử dụng phương thức "middleware" trong class RouteGroup:

Route::group(['middleware' => 'auth'], function () {
    Route::get('dashboard', function () {
       

Named Routes – Đặt tên cho bộ lọc định tuyến

Trong Laravel, bạn có thể đặt tên cho bộ lọc định tuyến bằng cách sử dụng từ khóa as trong hàm 'Route::filter.'

Ví dụ:

Route::filter('filterName', function()
{
    // Filter logic here
});

Sau đó, bạn có thể sử dụng tên này để áp dụng bộ lọc cho một định tuyến cụ thể bằng cách sử dụng từ khóa 'before' hoặc 'after 'trong hàm 'Route::get' hoặc 'Route::post'.

Ví dụ:

Route::get('/', array('before' => 'filterName', function()
{
    // Route logic here
});

Bạn cũng có thể sử dụng tên bộ lọc để áp dụng cho nhiều định tuyến cùng một lúc bằng cách sử dụng từ khóa before hoặc after trong hàm 'Route::group'.

Ví dụ:

Route::group(array('before' => 'filterName'), function()
{
    Route::get('/', function()
    {
        // Route logic here
    });

    Route::get('user/profile', function()
    {
        // Route logic here
    });
});

Route Groups – Nhóm bộ định tuyến

Trong Laravel, bạn có thể nhóm các định tuyến cùng một với nhau bằng cách sử dụng hàm 'Route::group'. Việc nhóm các định tuyến cùng một sẽ giúp bạn giảm thiểu việc lặp lại các phần tử giống nhau khi định nghĩa các định tuyến, và giúp cho mã của bạn trở nên sạch sẽ hơn.

Ví dụ:

Route::group(array('prefix' => 'admin'), function()
{
    Route::get('users', function()
    {
        // Route logic here
    });

    Route::get('posts', function()
    {
        // Route logic here
    });
});'

Trong ví dụ trên, tất cả các định tuyến trong nhóm sẽ có tiền tố '/admin' trước. Do đó, địa chỉ của '/users' sẽ là '/admin/users', và địa chỉ của '/posts' sẽ là '/admin/posts'.

Bạn cũng có thể áp dụng các bộ lọc định tuyến, các tham số định tuyến, và nhiều tùy chọn khác cho một nhóm định tuyến bằng cách truyền chúng vào hàm 'Route::group' như là tham số mảng.

Ví dụ:

Route::group(array('before' => 'auth', 'prefix' => 'admin'), function()
{
    Route::get('users', function()
    {
        // Route logic here
    });

    Route::get('posts', function()
    {
        // Route logic here
    });
});

Bạn có thể sử dụng nhiều nhóm định tuyến trong một ứng dụng Laravel của bạn, và bạn có thể gắn nhóm định tuyến vào nhau để tạo ra cấu trúc định tuyến phức tạp.

Tổ chức các nhóm định tuyến cho phù hợp với cấu trúc dự án của bạn có thể giúp cho việc quản lý và bảo trì mã của bạn trở nên dễ dàng hơn, và giúp cho việc tìm kiếm và sửa lỗi trong mã trở nên nhanh chóng hơn.

Route Prefixing – Tiền tố trước bộ định tuyến

Route prefixing là một tính năng trong Laravel cho phép bạn thêm một tiền tố trước các định tuyến. Tiền tố này có thể là một chuỗi của ký tự hoặc một biểu thức chính quy, và sẽ được thêm vào trước các URL của định tuyến.

Ví dụ, nếu bạn có một nhóm định tuyến với tiền tố "admin", tất cả các định tuyến trong nhóm này sẽ có URL bắt đầu bằng "admin/".

Route::prefix('admin')->group(function () {
    Route::get('users', function () {
        // Matches The "/admin/users" URL
    });
    Route::get('settings', function () {
        // Matches The "/admin/settings" URL
    });
});

Trong ví dụ này, hai định tuyến /users và /settings sẽ có tiền tố admin trước. Vì vậy, URL cho hai định tuyến sẽ là '/admin/users''/admin/settings'.

Bạn cũng có thể sử dụng tiền tố trên một định tuyến riêng biệt bằng cách sử dụng hàm prefix trước khi gọi định tuyến:

Route::prefix('admin')->get('users', function () {
    // Matches The "/admin/users" URL
});

Trong ví dụ này, định tuyến '/users' sẽ có tiền tố admin trước, vì vậy URL cho định tuyến sẽ là '/admin/users'.

3. Các bước tạo Route trong Laravel

Mở file "routes/web.php" hoặc "routes/api.php":

Trong Laravel, Route được định nghĩa trong các tập tin routes/web.php hoặc routes/api.php. Bạn có thể tạo Route cho cả web và API trong tập tin web.php hoặc chỉ tạo Route cho API trong tập tin api.php.

Sử dụng hàm Route

Để sử dụng hàm Route trong Laravel, bạn cần sử dụng các phương thức của Route để định tuyến các URL của trang web của bạn. Laravel cung cấp các phương thức sau để định tuyến:

  • Route::get($uri, $callback): Định tuyến cho phương thức HTTP GET.
  • Route::post($uri, $callback): Định tuyến cho phương thức HTTP POST.
  • Route::put($uri, $callback): Định tuyến cho phương thức HTTP PUT.
  • Route::patch($uri, $callback): Định tuyến cho phương thức HTTP PATCH.
  • Route::delete($uri, $callback): Định tuyến cho phương thức HTTP DELETE.
  • Route::options($uri, $callback): Định tuyến cho phương thức HTTP OPTIONS.

Ví dụ:

Route::get('/', function () { return 'Hello World'; });

Trên đây là một ví dụ của việc sử dụng hàm Route trong Laravel để định tuyến URL "/" với một hàm callback trả về chuỗi "Hello World".

Truyền tham số cho hàm Route

Truyền URL mà bạn muốn định tuyến làm tham số đầu tiên, và hàm callback hoặc tên của action trong Controller mà URL sẽ định tuyến đến làm tham số thứ hai.

Ví dụ:

Route::get('/greeting', function () {
    return 'Hello World';
});

Lưu lại tập tin và chạy trình web:

Lưu lại tập tin routes/web.php hoặc routes/api.php sau khi sửa xong và chạy trình web để kiểm tra kết quả. Nếu tất cả hoạt động đúng, bạn sẽ thấy kết quả trả về từ Route khi truy cập URL tương ứng.

Kết thúc bài viết

Cuối cùng, chúng ta đã hoàn thành một bài viết về cách sử dụng cú pháp và cách sử dụng của bộ định tuyến trong Laravel. Chúng ta đã tìm hiểu về các loại định tuyến cơ bản như GET, POST, PUT, DELETE và cách sử dụng các định tuyến đặt tên, nhóm định tuyến và tiền tố.

Bằng cách sử dụng các tính năng này, chúng ta có thể tạo ra một hệ thống định tuyến mạnh mẽ và dễ sử dụng cho ứng dụng Laravel của chúng ta. Nếu bạn cần tìm hiểu thêm về các tính năng khác của Laravel, hãy tiếp tục tìm hiểu Laravel tutorials và áp dụng những kiến thức mới để tạo ra những ứng dụng tuyệt vời.

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