Tôi muốn sử dụng xác nhận cốt lõi của CakePHP cho các danh sách trong mô hình của tôi:CakePHP mô hình xác nhận với mảng
var $validate = array(
'selectBox' => array(
'allowedChoice' => array(
'rule' => array('inList', $listToCheck),
'message' => 'Enter something in listToCheck.'
)
)
);
Tuy nhiên, mảng $listToCheck
là mảng tương tự mà được sử dụng trong giao diện, để cư một selectbox. Tôi đặt hàm này ở đâu?
public function getList() {
return array('hi'=>'Hello','bi'=>'Goodbye','si'=>'Salutations');
}
Đã có trong bộ điều khiển của tôi, trong một trong những hành động Tôi đang thiết nó cho xem, như:
public function actionForForm() {
$options = $this->getList();
$this->set('options', $options);
}
Vì vậy, tôi không muốn phải sao chép các getList()
chức năng. .. nơi tôi có thể đặt nó để mô hình có thể gọi nó để điền vào mảng $listToCheck
của nó?
Cảm ơn sự giúp đỡ của bạn.
Cảm ơn bạn đã trả lời. Nhưng điều gì sẽ xảy ra khi tôi muốn sử dụng hàm '__()' trên các giá trị fieldAbc? – ash
Sau đó, tạo toàn bộ mảng trong hàm tạo, hoặc 'array_walk' trên nó và áp dụng hàm trên trường' message'. '$ this-> choices = array ('a' => __ ('A', true),…);' – deceze
Hoàn hảo. Cảm ơn bạn đã giúp đỡ! – ash