Các nhóm route trong Laravel (phần 2)

Các nhóm route (tiếp tục)

Bằng cách sử dụng các nhóm route, bạn có thể tổ chức các routes liên quan theo cách thức
cái giữ file route của bạn sạch và tương quan. Cái này trở nên đặc biệt quan trọng khi ứng dụng
của bạn phát triển và bạn thấy bản thân bạn làm việc với một số lớn hơn các routes.
Hãy tạo một vài ví dụ sử dụng mỗi thuộc tính nhóm route.
Middleware
Giả sử bạn muốn một vài routes có thể truy cập được chỉ đối với người dùng xác thực. Bạn có thể sử
dụng một nhóm route với auth middleware.

Route::middleware([ ‘auth’ ])->group( function () {
Route::get( ‘/dashboard’ ,
‘DashboardController@index’ );
Route::get( ‘/profile’ , ‘ProfileController@show’ );
});

Trong ví dụ này, người dùng phải được xác thực để truy cập dashboard hay trang profile. Nếu họ
không, Laravel auth middleware sẽ chuyển hướng họ tới trang login.
Namespaces
Giả sử bạn có một vài controllers cái quản lí các hàm admin và tất cả chúng ở trong Admin namespace.
Bạn có thể sử dụng một nhóm route để gắn tiền tố namespace.

Route::namespace( ‘Admin’ )->group( function () {
Route::get( ‘/admin/users’ , ‘UsersController@index’
);
Route::get( ‘/admin/posts’ , ‘PostsController@index’
);
});

Trong ví dụ này, Laravel sẽ tự động gắn lên trước Admin vào classes controller, nên
UsersController@index tham chiếu đến Admin\UsersController@index.
Sub-Domains
Nếu ứng dụng của bạn phục vụ nội dung khácn nhau phụ thuộc vào subdomain. Ví dụ, sau
đây là làm cách nào bạn có thể định nghĩa các routes cho một api subdomain:

Route::domain( ‘api.myapp.com’ )->group( function () {
Route::get( ‘/users’ , ‘UsersController@index’ );
Route::get( ‘/posts’ , ‘PostsController@index’ );
});

Trong trường hợp này, người dùng và các điểm cuối post index chỉ có thể truy cập được từ api.myapp.com
subdomain.
Route Prefixes
Cuối cùng, bạn thường muốn gắn tiền tố một vài routes với cùng đoạn URI. Ví dụ, bạn có thể muốn gắn tiền
tố tất cả admin routes với admin:

Route::prefix( ‘admin’ )->group( function () {
Route::get( ‘/users’ , ‘UsersController@index’ );
Route::get( ‘/posts’ , ‘PostsController@index’ );
});

Trong ví dụ này, các routes sẽ trả lời tới /admin/users và /admin/posts tương ứng.
Bằng cách sử dụng các đặc tính nhóm route, bạn có thể giữ các routes file của bạn dry và có tổ chức.

Chia sẻ

Leave a Reply

Your email address will not be published. Required fields are marked *