Request trong Laravel

Trong bài này, bạn sẽ tìm hiểu chi tiết về Requests trong Laravel.

Lấy Request URI

Phương thức "path" của người dùng được sử dụng để lấy URI được yêu cầu. Phương thức is được sử dụng để truy xuất URI được yêu cầu khớp với mẫu cụ thể được chỉ định trong đối số của phương thức. Để có được URL đầy đủ, chúng ta có thể sử dụng phương thức url.

Ví dụ
Bước 1 - Thực hiện lệnh dưới đây để tạo controller mới gọi là UriControll.
php artisan make:controller UriController
Bước 2 - Sau khi tạo controller, thêm đoạn mã sau vào tệp app/Http/Controllers/UriController.php.
<?php

namespace App\Http\Controllers;
use Illuminate\Http\Request;

class UriController extends Controller
{

public function index(Request $request) {

// Sử dụng phương thức path
$path = $request->path();
echo 'Path Method: '.$path;
echo '<br>';

// Sử dụng phương thức is
$pattern = $request->is('foo/*');
echo 'is Method: '.$pattern;
echo '<br>';

// Sử dụng phương thức url
$url = $request->url();
echo 'URL method: '.$url;

}

}

Bước 3 - Thêm dòng sau vào file routes/web.php.
Route::get('/foo/bar','UriController@index');
Bước 4 - Truy cập URL sau.
http://localhost:8000/foo/bar
Bước 5 - Đầu ra sẽ xuất hiện như hình ảnh sau đây.

request trong laravel


Lấy dữ liệu đầu vào (input)

 Các giá trị đầu vào có thể lấy dễ dàng trong Laravel. Laravel sẽ nhận giá trị đầu vào cho cả hai phương thức "post""get" giống nhau. Có hai cách chúng ta có thể lấy các giá trị đầu vào.

  • Sử dụng phương thức input()
  • Sử dụng các thuộc tính của thể hiện Request


Sử dụng phương thức input()

Phương thức input() nhận một đối số (tên của field trong form). Ví dụ: nếu form chứa trường username thì chúng ta có thể truy cập nó theo cách sau.
$name = $request->input('username');

Sử dụng các thuộc tính của thể hiện Request

Giống như phương thức input(), chúng ta có thể lấy thuộc tính username trực tiếp từ thể hiện request.
$request->username

Ví dụ
Quan sát ví dụ sau để hiểu thêm về Request

Bước 1 - Tạo form Đăng ký, nơi người dùng có thể tự đăng ký và lưu trữ form tại resources/views/register.php.
<html>

<head>

<title>Ví dụ Form</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>

Bước 2 - Thực hiện lệnh dưới đây để tạo controller UserRegistration.
php artisan make:controller UserRegistration
Bước 3 - Sao chép mã sau vào controller app/Http/Controllers/UserRegistration.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;

class UserRegistration extends Controller{
public function postRegister(Request $request) {
//Nhận field đầu vào name
$name = $request->input('name');
echo 'Name: '.$name;
echo '<br>';

//Nhận field đầu vào username
$username = $request->username;
echo 'Username: '.$username;
echo '<br>';

//Retrieve the password input field
$password = $request->password;
echo 'Password: '.$password;
}
}

Bước 5 - Thêm dòng sau vào tệp routes/web.php.

Route::get('/register',function() {
return view('register');
});
Route::post('/user/register',array('uses'=>'UserRegistration@postRegister')); 

Bước 6 - Truy cập URL sau và bạn sẽ thấy form đăng ký như trong hình bên dưới. Nhập chi tiết đăng ký và nhấp vào register, bạn sẽ thấy trên trang thứ hai mà chúng ta đã truy xuất và hiển thị chi tiết thông tin người dùng đăng ký.
http://localhost:8000/register
Bước 7 - Đầu ra sẽ trông giống như được hiển thị dưới đây.

request trong laravel