8. Lấy tất cả dữ liệu input (ok)

https://viblo.asia/p/tap-16-request-laravel-aWj534Y8K6m

Đầu tiên các bạn tạo controller FormController để ta tiến hành lấy dữ liệu input trong đó. Trong FormController bạn định nghĩa hai method dưới:

public function show()
{
    return view('form');
}

public function post(Request $request)
{
    //
}

Trong method post mình đã inject Illuminate\Http\Request để có thể lấy dữ liệu input từ request hiện tại. Tạm thời ta sẽ để đây, lát ta sẽ tiến hành test sau.

Tiếp đến là đăng ký 2 route:

Route::get('/', 'FormController@show');

Route::post('/post', 'FormController@post');

Cuối cùng là tạo blade view form để build các form HTML cho việc gửi data từ input. Thế là việc chuẩn bị đã hoàn tất, giờ ta tiến hành test các method hay sử dụng để lấy input từ Illuminate\Http\Request.

1. Lấy tất cả dữ liệu input (Retriveing all input data)

Tại blade view form, các bạn tạo form như sau:

<form action="/post" method="POST">
    @csrf

    <p>Username</p>
    <div>
        <input type="text" name="username">
    </div>
    
    <p>Password</p>
    <div>
        <input type="password" name="password">
    </div>

    <br>

    <div>
        <button type="submit">Login</button>
    </div>
</form>

Tiếp theo tại method post của FormController, ta sẽ thử lấy dữ liệu của tất cả input được gửi từ request bằng cách:

public function post(Request $request)
{
    dd($request->all());
}

Chúng ta sử dụng method all để thực thi việc này. Đây là kết quả:

Chú ý: Bạn có thể sử dụng method input để thay thế cho all.

Last updated