Phân công hàng loạt là một quá trình gửi một mảng dữ liệu sẽ được lưu vào mô hình đã chỉ định cùng một lúc. Nói chung, bạn không cần phải lưu dữ liệu trên mô hình của mình từng cái một, mà là trong một quy trình duy nhất.
Phân công hàng loạt là tốt, nhưng có một số vấn đề bảo mật đằng sau nó. Điều gì xảy ra nếu ai đó chuyển một giá trị cho mô hình và không có bảo vệ, họ chắc chắn có thể sửa đổi tất cả các trường bao gồm ID. Điều đó không tốt.
Hãy nói rằng bạn có bảng 'của học sinh, với các lĩnh vực "student_type, first_name, last_name” . Bạn có thể muốn khối assign 'first_name, last_name' nhưng bạn muốn bảo vệ student_type khỏi bị thay đổi trực tiếp. Đó là nơi để điền và canh gác nơi mất.
Fillable cho phép bạn chỉ định trường nào có thể gán khối lượng trong mô hình của mình, bạn có thể thực hiện bằng cách thêm biến đặc biệt $fillable
vào mô hình. Vì vậy, trong mô hình:
class Student extends Model {
protected $fillable = ['first_name', 'last_name']; //only the field names inside the array can be mass-assign
}
' student_type ' không được bao gồm, có nghĩa là họ được miễn.
Bảo vệ là mặt trái của điền. Nếu fillable chỉ định trường nào sẽ được gán khối lượng, được bảo vệ chỉ định trường nào không được gán khối lượng. Vì vậy, trong mô hình:
class Student extends Model {
protected $guarded = ['student_type']; //the field name inside the array is not mass-assignable
}
bạn nên sử dụng $ fillable hoặc $ được bảo vệ - không phải cả hai.
Để biết thêm chi tiết liên kết mở: - Bài tập lớn