Giải pháp chuyển đổi số trọn gói cho doanh nghiệp Việt
-Sau khi đã giới thiệu với các bạn về model, controller,.. thì tiếp đến ở bài này mình sẽ giới thiệu về Form Request một thứ không thể thiếu trong một framwwork.
-Và để bắt đầu chúng ta cần tạo cho nó một view.
-Đầu tiên mình sẽ tạo ra một view FormRequest.blade.php có nội dung như sau:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Test form</title>
<link rel="stylesheet" href="">
</head>
<body>
<form action="{{ url('handle-form') }}" method="POST" role="form">
<legend>Test submit form</legend>
{{ csrf_field()}}
<div class="form-group">
<label for="">label</label>
<input type="text" name="name" class="form-control" id="" placeholder="Input field">
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
</body>
</html>
-Ở đây mình có tạo ra một form có một trường name input, một button submit và một action {{ url('handle-form') }} (action này nó sẽ có chức năng gọi đến đường dẫn yourdomain.com/handle-form ).
Chú ý: đối với Laravel khi xử lý form thì bắt buộc phải có csrf_token (tránh tấn công xss) nếu không thì sẽ không thực hiện được submit form được. Để tạo csrf_token cho form chúng ta có 2 cách sau:
{{ csrf_field() }}<input type="hidden" name="_token" value="<?php echo csrf_token(); ?>"> hoặc <input type="hidden" name="_token" value="{{ csrf_token() }} ?>"> đối với blade template.
-Tiếp theo mình lại tạo thêm một handleController để xử lý Reuqest.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class HandleController extends Controller
{
public function getForm(){
return view('FormRequest');
}
public function handleRequest(Request $request){
// nhan het du lieu co trong form
return $request->all();
}
}
-Ở trên mình có tạo ra 2 function:
orm-request.blade.php ở trên.=>Chú ý: Để nhận dữ liệu từ form được thì chúng ta cần phải truyền vào hàm nhận một lớp Request.(Nói ở phần dưới).
-Sau khi đã tạo xong View vào Controller giờ mình sẽ tạo tiếp 2 Route để hiện view và xử lý dữ liệu.
Route::get('get-form',['uses'=> 'HandleController@getForm']);
Route::post('handle-form',['uses'=> 'HandleController@handleRequest']);
//Hoặc ngắn gọn hơn như sau
Route::get('get-form', 'HandleController@getForm');
Route::post('handle-form', 'HandleController@handleRequest');
-Cái này thì mình không giải thích nữa nhé (ai không hiểu xem lại route ).
-Trong Laravel hỗ trợ chúng ta rất mạnh về xử lý nhận dữ liệu từ form. Nên trong bài này mình sẽ không thể nêu hết các phương thức, thuộc tính mà Laravel hỗ trợ được, mình sẽ nêu ra các phương thức, thuộc tính hay dùng thôi.
-Để hết dữ liệu của form gửi lên thì Laravel. thì mọi người sử dụng phương thức all().
VD: đối với view trên mọi người sẽ nhận như sau.
public function handleRequest(Request $request)
{
// nhan het du lieu co trong form
return $request->all();
}
-Để lấy dữ liệu của name định sẵn các bạn sử dụng cú pháp:
$request->input('inputname');
Hoặc
$request->inputname;
Hoặc:
$request->get('inputname');
VD: Mình sẽ lấy giá trị của name='name' ở trong view trên như sau:
public function handleRequest(Request $request)
{
return $request->get('name');
}
Cú Pháp:
public function handleRequest(Request $request)
{
return $request->get('name');
}
-Hàm này cho phép lấy giá trị của nhiều name và trả về dữ liệu mảng.
-Laravel có cung cấp luôn cho chúng ta hàm kiểm kiểu submit của form là GET,POST,.. Cú pháp xử lý như sau:
public function handleRequest(Request $request)
{
return $request->isMethod('post');
}
-phương thức này trả về kiểu giá trị boolean (true,false);
-Cú Pháp:
public function handleRequest(Request $request)
{
return $request->path();
}
-Hàm này cho phép chúng ta lấy đường dẫn tới form.
VD: http://domain.com/form/submit/
Cú Pháp:
public function handleRequest(Request $request){
return $request->is('something');
}
-Hàm này có tác dụng giới hạn các url được chấp nhận gửi form.
VD: chỉ muốn nhận dữ liệu từ đường dẫn có path bắt đầu bằng admin
public function handleRequest(Request $request)
{
if ($request->is('admin/*')) {
// code
}
}
-Với sự hỗ trợ mạnh mẽ của Laravel thì các bạn cũng có thể sử dụng collection trong Form Request.
VD:
$input = $request->only(['username', 'password']);
$input = $request->only('username', 'password');
$input = $request->except(['credit_card']);
$input = $request->except('credit_card');
-Phần trên mình đã giới thiệu với mọi người về Form Request trong Laravel rồi, tuy nó chỉ là lý thuyết nhưng nó sẽ là nền tảng cho bạn khi làm việc với Laravel về sau.
Chúng tôi chỉ gửi tối đa 2 lần trên 1 tháng. Tuyên bố không spam mail!
Chưa có câu hỏi nào cho bài này.