Giả sử tôi có một sản phẩm có thể có màu. Tùy thuộc vào loại sản phẩm, trường màu có thể hoặc không thể được yêu cầu.Yii - tự động thay đổi các quy tắc từ bộ điều khiển
Nếu màu sắc luôn được yêu cầu, tôi sẽ có những điều sau đây trong mô hình sản phẩm
public function rules()
{
return array(
array('colour', 'required')
);
}
Tuy nhiên, tôi muốn đây là động tùy thuộc vào loại sản phẩm.
Điều này có nên được thực hiện trong bộ điều khiển không? Tôi sẽ tưởng tượng có một cái gì đó như sau trong bộ điều khiển:
public function actionOrder() {
// ....
if ($product->HasColour) {
// set the colour validation to be required
} else {
// set the colour validation to be not required
}
}
Cách tốt nhất để tiếp cận điều này là gì?
Cảm ơn
Nếu nó cụ thể cho một loại sản phẩm, do đó mô hình nên được thực hiện trong mô hình. – Zombaya
Nhưng những gì bạn đang làm trong bộ điều khiển của bạn cũng chính xác, nếu forminput xác thực của bạn. Vì vậy, tôi đoán bạn không phạm sai lầm ở đây. – Zombaya
Mô hình không biết sản phẩm cho đến khi actionOrder() được thực thi, phải không? –