У меня есть проект CakePHP со столом Ань адресов "со следующей структурой:Проверка несколько наборов данных POST в CakePHP
CREATE TABLE `addresses` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) DEFAULT NULL,
`name` varchar(50) NOT NULL,
`company` varchar(50) NOT NULL,
`address1` varchar(50) NOT NULL,
`address2` varchar(50) DEFAULT NULL,
`city` varchar(40) NOT NULL,
`state` varchar(2) NOT NULL,
`country` varchar(2) NOT NULL,
`zip` varchar(5) NOT NULL,
PRIMARY KEY (`id`)
)
Существует страница в этом проекте, который запрашивает у пользователя как для Адрес доставки и адрес фактурирования, а также не знаю, как структурировать имена входов формы, чтобы разрешить несколько экземпляров одних и тех же полей базы данных на одной странице
В представлении я попытался использовать псевдоним для разделения два экземпляра полей адреса
IE-
<?=$this->Form->input('Shipaddress.zip', array('label' => 'Zip Code'));?>
...
<?=$this->Form->input('Billaddress.zip', array('label' => 'Zip Code'));?>
то в представлении, я попытался отделить два экземпляра, проверить оба, и установить соответствующий $ this-> ValidationError значения для правильного отображения ошибок на правильные взгляды поля
// place in arrays with proper model name ['Address']
$ship_array['Address'] = $this->request->data['Shipaddress'];
$bill_array['Address'] = $this->request->data['Billaddress'];
//Set Data to model, Validate Against model, change model name in validationErrors to match aliased fields, and remove validationErrors for ['Address']
$this->Address->set($ship_array);
$shipping_valid = $this->Address->validates(array('fieldList' => array('name', 'company', 'address1', 'address2', 'city', 'state', 'country', 'zip')));
$this->validationErrors['Shipaddress'] = $this->validationErrors['Address'];
$this->validationErrors['Address'] = array();
//Do it again for Billing Address fields
$this->Address->set($bill_array);
$billing_valid = $this->Address->validates(array('fieldList' => array('name', 'company', 'address1', 'address2', 'city', 'state', 'country', 'zip')));
$this->validationErrors['Billaddress'] = $this->validationErrors['Address'];
$this->validationErrors['Address'] = array();
, к сожалению, это не появляется на работе, и я боюсь, что я зашел слишком далеко, пытаясь сделать эту работу ...
может кто-то дать мой пинок в правильном направлении, о том, как это может быть сделано правильно?