Bài 7: Laravel – Request
Retrieving the Request URI Phương thức “path” được sử dụng để lấy URI. Phương thức “is” được sử dụng để lấy URI đã yêu cầu mà khớp với pattern xách định trong đối số của phương thức. Để lấy ful URL, chúng ta có thể sử dụng phương thức “url”. Example ...
Retrieving the Request URI
Phương thức “path” được sử dụng để lấy URI. Phương thức “is” được sử dụng để lấy URI đã yêu cầu mà khớp với pattern xách định trong đối số của phương thức. Để lấy ful URL, chúng ta có thể sử dụng phương thức “url”.
Example
Step 1: Thực hiện câu lệnh dưới để tạo một controller mới với tên UriController.
php artisan make:controller UriController
Step 2: Sau khi tạo một controller, thêm code sau vào file đó.
app/Http/Controllers/UriController.php
class UriController extends Controller {
public function index(Request $request){
// Usage of path method
$path = $request->path();
echo ‘Path Method: ‘.$path;
echo ‘<br>’;
// Usage of is method
$pattern = $request->is(‘foo/*’);
echo ‘is Method: ‘.$pattern;
echo ‘<br>’;
// Usage of url method
$url = $request->url();
echo ‘URL method: ‘.$url;
}
}
Thành phần namespace và use trong file chúng ta giữ nguyên. Chỉ thêm code vào các method trong class như trên.
Lưu ý: trong function index bạn có thấy “Request $request”, vậy cách viết này là gì vậy? Nếu bạn không hiểu có thể xem lại bài Controller, ở mục Constructor Injection.
Step 3: đừng quên thêm định tuyến khi tạo method, controller mới
Route::get(‘/foo/bar’,’UriController@index’);
Step 4: chạy http://localhost:8000/foo/bar
Step 5: và đây là kết quả
Retrieving Input
Giá trị input có thể dể dàng lấy được trong Laravel. Không vấn đề gì phương thức đã sử dụng “get” hoặc “post”, Phương thức Laravel sẽ lấy giá trị input cho cả 2 phương thức trong cùng 1 cách mà thôi. Có 2 cachs chúng ta có thể lấy giá trị Input.
- Sử dụng phương thức input()
- Sử dụng thuộc tính của Request
Sử dụng phương thức input()
Phương thức input() có một đối số, tên của field trong form. Lấy ví dụ, nếu form chứa đựng field username thì chúng ta có thể truy cập nó bằng cách:
$name = $request->input(‘username’);
Sử dụng thuộc tính của Request
Giống phương thức input(), chúng ta có thể lấy thuộc tính username trực tiếp từ request
$request->username
Example
Step 1: tạo một form đăng ký, nơi user có thể đăng ký tài khoản ở resource/views/register.php
<html>
<head>
<title>Form Example</title>
</head>
<body>
<form action = “/user/register” method = “post”>
<input type = “hidden” name = “_token” value = “<?php echo csrf_token() ?>”>
<table>
<tr>
<td>Name</td>
<td><input type = “text” name = “name” /></td>
</tr>
<tr>
<td>Username</td>
<td><input type = “text” name = “username” /></td>
</tr>
<tr>
<td>Password</td>
<td><input type = “text” name = “password” /></td>
</tr>
<tr>
<td colspan = “2” align = “center”>
<input type = “submit” value = “Register” />
</td>
</tr>
</table>
</form>
</body>
</html>
Step 2: tạo controller UserRegistration
php artisan make:controller UserRegistration
Step 3: copy code sau vào controller vừa tạo
class UserRegistration extends Controller {
public function postRegister(Request $request){
//Retrieve the name input field
$name = $request->input(‘name’);
echo ‘Name: ‘.$name;
echo ‘<br>’;
//Retrieve the username input field
$username = $request->username;
echo ‘Username: ‘.$username;
echo ‘<br>’;
//Retrieve the password input field
$password = $request->password;
echo ‘Password: ‘.$password;
}
}
Step 4: thêm các dòng code sau vào file định tuyến.
Route::get(‘/register’,function(){
return view(‘register’);
});
Route::post(‘/user/register’,array(‘uses’=>’UserRegistration@postRegister’));
Step 5: chạy http://localhost:8000/register
Sau khi điền thông tin trong form và click nút register để thấy trang thứ 2 hiễn thị thông tin đăng ký bạn đã đưa vào.