Laravel - Định tuyến
Trong Laravel, tất cả các yêu cầu đều được ánh xạ với sự trợ giúp của các tuyến. Định tuyến cơ bản định tuyến yêu cầu đến các bộ điều khiển liên quan. Chương này thảo luận về định tuyến trong Laravel.
Định tuyến trong Laravel bao gồm các danh mục sau:
- Định tuyến cơ bản
- Thông số tuyến đường
- Các tuyến đường được đặt tên
Định tuyến cơ bản
Tất cả các tuyến ứng dụng được đăng ký trong app/routes.phptập tin. Tệp này cho Laravel biết các URI mà nó sẽ phản hồi và bộ điều khiển liên quan 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ị trong ảnh chụp màn hình dưới đây -
Route::get ('/', function () {
return view('welcome');});
Thí dụ
Quan sát ví dụ sau để hiểu thêm về Định tuyến -
app/Http/routes.php
<?php
Route::get('/', function () {
return view('welcome');
});
resources/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ế định tuyến đượ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ế định tuyến -
Step 1 - Ban đầu, chúng ta nên thực thi URL gốc của ứng dụng.
Step 2 - Bây giờ, URL được thực thi phải khớp với phương thức thích hợp trong route.phptập tin. 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.
Step 3 - Hàm gọi tệp mẫu resources/views/welcome.blade.php. Tiếp theo, hàm gọi view() hàm với đối số ‘welcome’ mà không sử dụng blade.php.
Điều này sẽ tạo ra đầu ra HTML như được hiển thị trong hình ảnh bên dưới:
Tham số tuyến đường
Đôi khi trong ứng dụng web, bạn có thể cần phải nắm bắt các tham số được truyền với URL. Đối với điều này, bạn nên sửa đổi mã trongroutes.php tập tin.
Bạn có thể nắm bắt các thông số trong routes.php nộp hồ sơ theo hai cách như đã thảo luận ở đây -
Các thông số bắt buộc
Những thông số này là những thông số cần được bắt buộc phải nắm bắt để định tuyến ứng dụng web. Ví dụ: điều quan trọng là phải 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 thông số tuyến đường như hình dưới đây -
Route::get('ID/{id}',function($id) {
echo 'ID: '.$id;
});
Các thông số tùy chọn
Đôi khi các nhà phát triển có thể tạo ra các tham số như là tùy chọn và có thể với việc 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ố. Hãy xem ví dụ sau đây cho thấy cách xác định một 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 và theo đó định tuyến đến URL đã xác định.
Các tuyến đường được đặt tên
Các tuyến đường được đặt tên cho phép tạo các tuyến đường thuận tiện. Chuỗi các tuyến có thể được chỉ định bằng cách sử dụng phương thức tên trên định nghĩa tuyến. Đoạn mã sau đây cho thấy một ví dụ để tạo các tuyến đường đượ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 thông số sử dụngname phương pháp vào định nghĩa tuyến đường.