Convert request parameters to boolean trong Laravel Chuyên mục PHP và Laravel 2023-07-30 1.3k Lượt xem 99 Lượt thích 0 Bình luận
Đôi khi, bạn có thể muốn chuyển đổi một số request parameters thành boolean. Chẳng hạn, lấy một checkbox field. Trừ khi và cho đến khi nó chưa được kiểm tra, nó sẽ không được chuyển đến request. Trong trường hợp như vậy, sẽ có lợi nếu chuyển đổi các đầu vào đó thành boolean.
Laravel 6.x có một phương thức tiện ích trợ giúp như vậy trong Illuminate\Http\Request có tên là boolean($key) lấy tên đầu vào là một $key và trả về một giá trị boolean tương đương cho cùng một giá trị. Nó làm như vậy bằng cách lấy đầu vào bằng phương thức input() và lọc nó qua filter_var và FILTER_VALIDATE_BOOLEAN.
Dưới đây là một số ví dụ về cách bạn có thể sử dụng điều này.
// checkbox
Request::boolean('available_for_hire');
// true if checked
// false if not checked
// string - Yes/No
Request::boolean('is_active');
// true for 'Yes'
// false for 'No'
Ở đây, available_for_hire có thể là checkbox field hoặc string input, chuyển nó qua boolean() sẽ trả về giá trị boolean dựa trên bộ lọc biến FILTER_VALIDATE_BOOLEAN.
Phương thức này đặt giá trị mặc định là false để biến không xác định (ví dụ: checkbox field không được chọn) sẽ đóng vai trò là false. tức là nếu không tìm thấy key trong input request , false sẽ được trả về.
Nhưng điều đó cũng có thể tùy chỉnh. Vì vậy, nếu bạn muốn giá trị mặc định của một trường là đúng khi nó chưa được xác định, đây là cách bạn có thể thực hiện.
Request::boolean('is_active', true);
Đây là cách phương thức boolean() xử lý.
/**
* Retrieve input as a boolean value.
*
* @param string|null $key
* @param bool $default
* @return bool
*/
public function boolean($key = null, $default = false)
{
return filter_var(
$this->input($key, $default),
FILTER_VALIDATE_BOOLEAN
);
}
Bình luận (0)