Версия Mycakephp - 2.1.1.Cakephp 2.1 Сохранение связанных объектов вручную
я пытаюсь сохранить соответствующую модель вручную с помощью SaveAll функции()
Модель
- Сотрудник HasOne Адрес
- Сотрудник Принадлежит отдела
так таблица
employees(first_name,last_name,age,sex,department_id)
addresses(first_line,second_line,city,state,employee_id)
в настоящее время создания сотрудника add.ctp имеет форму, которая получает входные данные для сотрудника и адреса
я знаю
$this->Employee->saveAll($this->request->data);
это сохранит модель, но
я хочу, чтобы сохранить ассоциацию вручную
Я проходил через официальный документ cakephp here, и я пробовал что-то вроде этого
$this->Employee->saveAll($data, array(
'fieldList' => array(
'Employee' => array('first_name','last_name','age','sex','department_id'),
'Department' => array('first_line', 'second_line','city','state','employee_id')
)
));
он не работает, и бросает следующие ошибки
Notice (8): Undefined variable: data [APP\Controller\EmployeesController.php, line 118]
Warning (2): array_keys() expects parameter 1 to be array, null given [CORE\Cake\Model\Model.php, line 1996]
я новичок CakePHP. пожалуйста помогите.
$this->request->data: Array
(
[Employee] => Array
(
[first_name] => Jack
[last_name] => Robert
[age] => 32
[sex] => 0
[Department] => Development
)
[Address] => Array
(
[first_line] => HSR Layout
[second_line] => 1st Cross
[city] => Najem
[state] => Barel
)
[Department] => Array
(
[id] => 3
)
)
Можете ли вы показать больше из метода 'add()'? Где вы определяете '$ data'? –
Можете ли вы рассказать мне, как определить $ data, я понятия не имею об этом – maaz
Если вы не определяете '$ data', вы должны использовать' $ this-> request-> data', поэтому вы получаете данные своей формы , –