Trong Laravel, tất cả các yêu cầu (request) được xử lý đầu tiên bới Router. Router cơ bản định tuyến yêu cầu đến các controller liên quan.
Router trong Laravel bao gồm các danh mục sau :
- Basic Routing
- Route parameters
- Named Routes
Basic Routing (Định tuyến cơ bản)
Tất cả các yêu cầu của ứng dụng được đăng ký trong tệp app/routes.php . Tệp này báo cho Laravel biết các URI mà nó sẽ phản hồi và bộ điều khiển được liên kết sẽ cung cấp cho nó một lệnh gọi cụ thể. Lộ trình mẫu cho trang chào mừng có thể được hiển thị như trong ảnh chụp màn hình bên dưới –
Route::get ('/', function () { return view('welcome');});
Thí dụ
Quan sát ví dụ sau để hiểu thêm về Router −
app/Http/routes.php
<?php Route::get('/', function () { return view('welcome'); });
tài nguyên/view/welcome.blade.php
<!DOCTYPE html> <html> <head> <title>Laravel</title> <link href = "https://fonts.googleapis.com/css?family=Lato:100" rel = "stylesheet" type = "text/css"> <style> html, body { height: 100%; } body { margin: 0; padding: 0; width: 100%; display: table; font-weight: 100; font-family: 'Lato'; } .container { text-align: center; display: table-cell; vertical-align: middle; } .content { text-align: center; display: inline-block; } .title { font-size: 96px; } </style> </head> <body> <div class = "container"> <div class = "content"> <div class = "title">Laravel 5.1</div> </div> </div> </body> </html>
Cơ chế Router được hiển thị trong hình dưới đây –
Bây giờ chúng ta hãy hiểu chi tiết các bước liên quan đến cơ chế Router –
Bước 1 – Ban đầu, chúng ta nên thực thi URL gốc của ứng dụng.
Bước 2 – Bây giờ, URL đã thực thi phải khớp với phương thức thích hợp trong tệp route.php . Trong trường hợp hiện tại, nó phải khớp với phương thức và URL gốc (‘/’). Điều này sẽ thực thi chức năng liên quan.
Bước 3 – Hàm gọi tệp mẫu resource/views/welcome.blade.php. Tiếp theo, hàm gọi hàm view() với đối số ‘chào mừng’ mà không sử dụng blade.php .
Điều này sẽ tạo ra đầu ra HTML như trong hình dưới đây –
Route parameters(Định tuyến có tham số)
Đôi khi trong ứng dụng web, bạn có thể cần nắm bắt các tham số được truyền bằng URL. Đối với điều này, bạn nên sửa đổi mã trong tệp routes.php .
Bạn có thể nắm bắt các tham số trong tệp routes.php theo hai cách như đã thảo luận ở đây –
Thông số bắt buộc
Các tham số này là những tham số bắt buộc phải được ghi lại để định tuyến ứng dụng web. Ví dụ: điều quan trọng là nắm bắt số nhận dạng của người dùng từ URL. Điều này có thể thực hiện được bằng cách xác định các tham router như hình bên dưới –
Route::get('ID/{id}',function($id) { echo 'ID: '.$id; });
Thông số tùy chọn
Đôi khi các nhà phát triển có thể tạo các tham số dưới dạng tùy chọn và có thể bao gồm ? sau tên tham số trong URL. Điều quan trọng là giữ giá trị mặc định được đề cập dưới dạng tên tham số. Xem ví dụ sau cho biết cách xác định tham số tùy chọn –
Route::get('user/{name?}', function ($name = 'TutorialsPoint') { return $name;});
Ví dụ trên kiểm tra xem giá trị có khớp với TutorialsPoint hay không và theo đó định tuyến tới URL đã xác định.
Named Routes (Định tuyến sử dụng name)
Các router được đặt tên cho phép một cách thuận tiện để tạo các router. Việc xâu chuỗi các router có thể được chỉ định bằng cách sử dụng phương thức tên trên định nghĩa router. Đoạn mã sau hiển thị một ví dụ để tạo các router được đặt tên với bộ điều khiển –
Route::get('user/profile', 'UserController@showProfile')->name('profile');
Bộ điều khiển người dùng sẽ gọi hàm showProfile với tham số là profile . Các tham số sử dụng phương thức tên trên định nghĩa tuyến đường.