Từ phiên bản 2.0.4 có mới EachValidator mà làm cho nó dễ dàng hơn bây giờ :
['x', 'each', 'rule' => ['integer']],
Điều này là đủ. Nếu các giá trị cũng nên được kiểm tra bạn có thể sử dụng này (với 'in' validator thực chất là một RangeValidator):
['x', 'each', 'rule' => ['in', 'range' => [2, 4, 6, 8]]], // each value in x can only be 2, 4, 6 or 8
Tuy nhiên, bạn có thể sử dụng 'trong' validator cũng trực tiếp. Và đó là có thể với các phiên bản trước Yii 2.0.4:
['x', 'in', 'range' => [2, 4, 6, 8], 'allowArray' => true]
Việc sử dụng 'strict' => true
lẽ sẽ chẳng có ý nghĩa trong trường hợp các dữ liệu được gửi bởi khách hàng và được thiết lập với Model->load(). Tôi không hoàn toàn chắc chắn nhưng tôi nghĩ rằng những giá trị đó đều được gửi dưới dạng chuỗi (như "5" thay vì 5).
Đây có phải là cho các quy tắc mô hình? Bạn có thể không thực sự lưu trữ một mảng, có thể một serialization của nó. Bạn có muốn làm cho mình rõ hơn một chút không? – casraf
Trong trường hợp của tôi, nó là mô hình cho một biểu mẫu có chứa một số hộp kiểm được tải dưới dạng mảng (với $ modal-> tải (Yii :: $ app-> request-> post()). Vì vậy, nó không dành cho ActiveRecord – robsch
@Chen Asraf Bạn có thể lưu trữ một mảng nếu bạn sử dụng ** mongodb ** – verybadbug