Route trong laravel là gì

Đôi khi bạn có thể cần đăng ký một route đáp ứng với nhiều phương thức. Bạn có thể làm như vậy bằng cách sử dụng phương pháp match. Hoặc, bạn thậm chí có thể đăng ký một tuyến đáp ứng tất cả các động từ HTTP bằng any phương thức nào:

Route::match(['get', 'post'], '/', function () {
    //
});

Route::any('/', function () {
    //
});

CSRF Protection

CSRF là viết tắt của Cross-site request forgeries là một loại khai thác độc hại, theo đó các lệnh trái phép được thực hiện thay mặt cho người dùng đã được xác thực. Bạn có thể tìm hiểu thêm chi tiết tại  CSRF Protection trong Laravel

Redirect Routes

Nếu bạn đang xác định một route chuyển hướng đến một URI khác, bạn có thể sử dụng phương pháp Route::redirect. Phương pháp này cung cấp một phím tắt thuận tiện để bạn không phải xác định một route hoặc controller để thực hiện một chuyển hướng đơn giản:

Route::redirect('/here', '/there');

 

Theo mặc định, Route::redirect trả về mã trạng thái 302. Bạn có thể tùy chỉnh mã trạng thái bằng cách sử dụng tham số thứ ba tùy chọn:

Route::redirect('/here', '/there', 301);

Hoặc, bạn có thể sử dụng phương thức Route::permanentRedirect để trả về mã trạng thái 301:

Route::permanentRedirect('/here', '/there');

View Routes

Nếu route của bạn chỉ cần trả về một view, bạn có thể sử dụng phương pháp Route::view. Giống như phương pháp chuyển hướng, phương pháp này cung cấp một phím tắt đơn giản để bạn không phải xác định toàn bộ route hoặc controller. Phương thức view chấp nhận một URI làm đối số đầu tiên và tên view làm đối số thứ hai của nó. Ngoài ra, bạn có thể cung cấp một mảng dữ liệu để chuyển đến view dưới dạng đối số thứ ba tùy chọn:

Định tuyến (route) trong Laravel có nghĩa là chỉ dẫn từ một yêu cầu tải một trang đến một đoạn code tương ứng để xử lý (nằm trong các Controller). Các route này nằm trong file route/web.php

Route trong laravel là gì

2. Các phương thức trong Route

Route của Laravel hỗ trợ các phương thức sau:

Route::get($uri, $callback); 
Route::post($uri, $callback);   //Sử dụng khi tạo mới dữ liệu
Route::put($uri, $callback);   //Sử dụng khi update dữ liệu
Route::patch($uri, $callback);
Route::delete($uri, $callback);  //Sử dụng khi xóa dữ liệu
Route::options($uri, $callback);

Trong đó

  • $url: đường dẫn route và
  • $callback: là một hành động nào đó sẽ được thực hiện để trả về.

3. Truyền tham số trong Route

a. Tham số bắt buộc

Trong một ứng dụng web chúng ta thường truyền các tham số thông qua URL, ví dụ về một trang sản phẩm:

https://vietlaravel.test/san-pham/1

Trong đó 1 chính là ID của sản phẩm, chúng ta có thể viết route như sau để get về ID sản phẩm trong URL

Route::get('san-pham/{id}', function($id) {
    echo "ID của sản phẩm là : " . $id;
});

Với cách viết {id} thì id sẽ là tham số bắt buộc phải truyền trong URL, nếu không có thì Laravel sẽ trả về thông báo lỗi.

b. Tham số tùy chọn

Đối với tham số tùy chọn thì các bạn có thể truyền vào hoặc không truyền. Cách viết trong Route sẽ như sau:

Route::get('/hello-world/{year?}', function($year = null){
    if($year){
        echo 'Hello world, ' . $year;
    }else{
        echo ''Hello world';
    }
});

Như vậy đối với tham số tùy chọn chúng ta thêm dấu ? đằng sau tên tham số.

4. Tên Route

Tên routes cho phép chúng ta thuận tiện hơn khi chuyển hướng các route cụ thể. Chúng ta có thể đặt tên route bằng cách thêm name khi chúng ta định nghĩa route.

Route::get('posts', function () { 
    //code
})->name('posts');

Hoặc

Route::post('posts', '[email protected]')->name('posts.store');

5. Nhóm Route

Với những Rotue có chung hành vi thì chúng ta có thể gom vào một nhóm. Ví dụ nhóm route Admin chúng ta có một số URL như sau

http://vietlaravel.test/admin

http://vietlaravel.test/admin/post

http://vietlaravel.test/admin/category

Trong Route chúng ta sẽ viết như sau:

Route::group(['prefix' => 'admin'], function () {
    
   Route::get('/', function ()    {
        //code
    });

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

    Route::get('category', function () {
        //code
    });
});

6. Namespaces

Namespace trong Laravel giống như PHP namespace được chỉ định với một nhóm controller. Ví dụ khi ta đặt file controller trong thư mục Admin (app\Http\Controllers\Admin) thì ta có thể sử dụng namespace

Route::group(['namespace' => 'Admin'], function() {

    // Controllers trong namespace "App\Http\Controllers\Admin"

});

7. Prefix 

Chúng ta có thể xem lại ví dụ ở phần 5 Nhóm Route, chúng ta có thể thấy các link trong ví dụ đều bắt đầu bằng /admin, vì vậy để gom nhóm Route cho gọn thì chúng ta sử dụng Prefix

Trên đây là một số vấn đề cơ bản về Route, để tìm hiểu thêm các bạn có thể đọc tại Document của Laravel tại đây

Route trong lập trình là gì?

Nói một cách ngắn gọn, routing (định tuyến) trong web application quá trình tuyển chọn thành phần nào sẽ xử lý yêu cầu của người dùng, thông thường dựa vào URL. Vì URL căn bản chuỗi (string) nên kỹ thuật routing chủ yếu so sánh chuỗi, phân tích chuỗi rồi đưa ra quyết định với if-else hoặc switch-case.

Route trong web là gì?

Route thực hiện chức năng định tuyến, dẫn đường cho các HTTP request được gởi đến đúng nơi ta muốn nó đến. Với các ứng dụng web ngày nay, việc làm cho ứng dụng có chức năng tốt – giao diện đẹp một chuyện, nhưng để có một trang web thực sự tốt thì “đường dẫn thân thiện” không thể thiếu.

Định tuyến để làm gì?

Định tuyến phương thức mà Router (Bộ định tuyến) hay PC (thiết bị mạng) dùng để chuyển các gói tin đến địa chỉ đích một cách tối ưu nhất, nghĩa chỉ ra hướng và đường đi tốt nhất cho gói tin. Router thu thập và duy trì các thông tin định tuyến để cho phép truyền và nhận các dữ liệu.

Middleware trong laravel là gì?

Hiểu về Middleware trong Laravel là gì? Middleware tương tự như một cơ chế cho phép người dùng tham gia vào luồng xử lý request của một ứng dụng Laravel. Với quá trình xử lý route điển hình của Laravel thì khi thực hiện xử lý yêu cầu thì Middleware chính một trong những class buộc ứng dụng phải thông qua.