Laravel: Tại sao sử dụng lớp "Input" thay vì $_POST hoặc $_GET

Khi làm việc với Laravel thì em thấy framework này có cung cấp lớp Input để lấy ra dữ liệu trong form:

$name = Input::get("first_name");

Nhưng trong PHP cũng có hai biến global là $_GET$_POST có thể được dùng để lấy ra dữ liệu gửi lên bằng form từ client:

$name = $_GET['first_name'];

Như vậy thì các bác cho em hỏi lớp Input trong Laravel có gì ưu việt hơn việc sử dụng hai biến có sẵn trong PHP?

Hói 2 tháng trước

Nếu sử dụng $_GET thì khi lấy ra trường firstname bạn sẽ cần phải kiểm tra sự tồn tại của trường này trong biến $_GET như sau:

$firstname = isset($_GET['firstname']) ? $_GET['firstname'] : null;

Vì nếu bạn chỉ dùng $_GET['firstname'] PHP sẽ báo lỗi nếu firstname không tồn tại trong query string trong URL.

Sử dụng lớp Input thì bạn không cần kiểm tra nếu như firstname không tồn tại trong $_GET thì giá trị trả về sẽ là null.

Trả lời 2 tháng trước
Bình Luận (1)
Vũ Huy Hoàng  Vũ Huy Hoàng thêm bình luận   2 tháng trước

Dùng PHP 7 thì rút gọn được xuống vài ký tự: $_GET['firstname'] ?? null

Viết Trả Lời: