Khi tìm hiểu về các Framework như Codeigniter, Laravel, Cakephp bạn sẽ thấy Route đóng vai trò không thể thiếu. Bạn đang tìm hiểu về Route Laravel và cách thức hoạt động của nó? Hãy đọc ngay bài viết này.

Vai trò của Route trong Laravel

Route được dùng để định tuyến Request người dùng đến một Controller cụ thể. Và từ Controller này sẽ thực thi một nhiệm vụ nhất định.

Bạn hãy xem lại Bài 3: Kết nối Controller và View trong Laravel

Truy cập vào thư mục routes => web.php bạn sẽ viết lệnh cho Route tại đây.

1. Router cơ bản

Cú pháp:

Route::<method>('<URI>', <callback function>)

Ví dụ thực tế:

Route::get('/home', '[email protected]');

Giải thích:

1. Route::get

Như bạn thấy nó sẽ bắt đầu bằng Route:: và get là phương thức. Ngoài ra còn có như phương thức khác nữa như:

  • post
  • put
  • pacth
  • delete
  • options

2. BlogController

Đó chính là tập tin Controller để kết tới

3. index

Đây chính là chức năng hàm (function) nằm trong tập tin BlogController

2. Route truyền tham số (Parameters)

Nếu bạn đã học qua PHP thuần sẽ biết tới CRUD (tạo, đọc, sửa, xóa). Trong Laravel chức năng này cũng không thể thiếu. Và để xóa hay update một bài viết, user nào đó cần gọi id. Và lúc này cần truyền tham số để gọi.

Xem lại: Code thêm, sửa, xóa, update trong Laravel

Ví dụ:

Route::get('delete/{id}', 'App\Http\Controllers\[email protected]');

3. Đặt tên cho các Route

Khi viết Route bạn cũng đừng quên đặt tên cho nó. Việc này sẽ giúp cho việc viết lệnh trở nên đơn giản hơn rất nhiều.

Route::get('create', 'App\Http\Controllers\[email protected]')->name('create');

Giả sử mình muốn lấy URL thì sẽ viết

$url = route('create');

4. Nhóm route (Route group)

Nhóm route sẽ giúp bạn quản lý dễ dàng hơn. Việc này sẽ dựa vào các đặc điểm như có chung middleware, namespace, tiền tố (prefix)…

1. Chung tiền tố

Route::group(['prefix' => 'admin'], function () {
    Route::post('insert', 'App\Http\Controllers\[email protected]')->name('insert');
    Route::get('edit/{id}', 'App\Http\Controllers\[email protected]')->name('edit');
    Route::post('update/{id}', 'App\Http\Controllers\[email protected]')->name('update');
});

Và khi truy cập mình sẽ cần phải gõ localhost/domain/admin/insert hoặc admin/edit

2. Chung middleware

Route::middleware(['one', 'two'])->group(function () {
    Route::get('/', function () {
        // Sử dụng Middleware one và two
    });
    Route::get('admin/view', function () {
        // Sử dụng Middleware one và two
    });
});

3. Chung namespace

Route::group(['namespace' => 'Backend'], function()
{
    // Controllers Within The "App\Http\Controllers\Backend" Namespace
});
Route::group(['namespace' => 'Frontend'], function()
{
    // Controllers Within The "App\Http\Controllers\Frontend" Namespace
});

Với chút kiến thức về Route trên đây sẽ giúp bạn hiểu rõ hơn và sử dụng đúng. Hãy đọc và thực hành bài tập dựa theo những gì mình chia sẻ ở bài này nhé!

Cùng chủ đề

Bình luận!

Xin lưu ý rằng tất cả các bình luận đều được kiểm duyệt theo chính sách bảo mật và tất cả các liên kết đều là nofollow. KHÔNG sử dụng từ khóa trong trường tên. Hãy để lại một cuộc trò chuyện cá nhân và ý nghĩa. *