Get in touch
or send us a question?
CONTACT

[Laravel Tutorials] – Bài 5: Route trong Laravel (phần 2)

Ở bài trước chúng ta đã tìm hiểu một số khái niệm cơ bản về route, ở bài này mình sẽ giới thiệu tiếp với mọi người các tính năng khác liên quan đến route

Route Group

Các route group cho phép chia sẽ các thuộc tính chung, các filter, các namespace của url, …

Middleware Route

Route::middleware(['first', 'second'])->group(function () {
    Route::get('/', function () {
        //
    });

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

Subdomain Route

Khi bạn muốn sử dụng route cho subdomain. tuy nhiên bạn cần thiết lập subdomain trên webserver trước

Route::domain('{account}.example.com')->group(function () {
    Route::get('user/{id}', function ($account, $id) {
        //
    });
});

Route prefix

Khi bạn muốn nhóm các route có tiền tố giống nhau

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

Binding Model Trong Route

Laravel tự động resolve eloquent model được định nghĩa route hoặc function trong controller có tên biến khớp với tên bộ phần route.

use App\Models\User;

Route::get('/users/{user}', function (User $user) {
    return $user->email;
});

Ví dụ với controller

use App\Http\Controllers\UserController;
use App\Models\User;

// Route definition...
Route::get('/users/{user}', [UserController::class, 'show']);


// Controller method definition...
public function show(User $user)
{
    return view('user.profile', ['user' => $user]);
}

Resource Route

Route::resource() là một chức năng giúp chúng ta xây dựng RESTful (websevice) một cách nhanh chóng.

use App\Http\Controllers\PhotoController;

Route::resource('photos', PhotoController::class);

Các method, URI sẽ được tạo ra như sau:

VerbURIRoute Name
GET/photosphotos.index
GET/photos/createphotos.create
POST/photosphotos.store
GET/photos/{photo}photos.show
GET/photos/{photo}/editphotos.edit
PUT/PATCH/photos/{photo}photos.update
DELETE/photos/{photo}photos.destroy

Resource route được kết hợp với RESTfull Controller tương ứng sẽ được học ở bài sau

Lời kết

Qua 2 phần chia sẽ về route hẳn các bạn đã nắm được phần nào triển khai Route trong laravel. Phần sau chúng ta sẽ tìm hiểu về View và Blade template trong Laravel.