我有一種形式可以保存具有許多零件和許多顏色的人,但不會保存零件和顏色;只保存該人(主要模型)。腳本的cakephp:使用一種形式保存到多個模型
在我的名單視圖,部分:
echo $this->Form->input('Person.person_name', array('required' => true, 'placeholder' => 'Name Your Person', 'label' => false));
echo $this->Form->input('Part.0.part_name', array('required' => true, 'placeholder' => 'Add Part', 'label' => false));
echo $this->Form->input('Color.0.color_name', array('required' => true, 'placeholder' => 'Enter a Color', 'label' => false));
在我名單控制器:
if ($this->request->is('post')) {
$created = $this->Person->saveAll($this->request->data, array('validate'=>'first'));
if (!empty($created)) {
$this->Session->setFlash(__('The person and his/her parts and colors have been saved.'));
return $this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash(__('The person could not be saved. Please, try again.'));
}
}
在我角色模型:
public $hasMany = array(
'PersonParts' => array(
'className' => 'Part',
'foreignKey' => 'part_person_id'
),
'PersonColors' => array(
'className' => 'Color',
'foreignKey' => 'color_person_id'
)
);
嘗試用saveAssociated替換saveAll,但它是相同的。 我在這裏做錯了什麼?任何幫助是極大的讚賞。
你有三種型號對不對?並且值應該存儲在不同的表中 –
將模型別名保持爲單獨的PersonParts - PersonPart是一個好主意 - 否則應用程序的某些方面會令人困惑(例如需要包含名爲PersonParts的表單字段) – AD7six