Я пытаюсь сохранить данные в две модели (модель и связанную с ним hasMany) одновременно и добился определенного успеха в ряде мест в моем приложении, однако этот подход, похоже, не работает с таблицами / моделями которые подчеркнули имена, то есть
//View Code
echo $this->Form->create('Product');
echo $this->Form->input('name',array('between' => '<br />'));
echo $this->Form->input('Component.0.text',array('between' => '<br />'));
echo $this->Form->end(__('Submit'));
//Controller Code
if ($this->Product->saveAssociated($this->request->data)) {
$this->Session->setFlash(__('The product has been saved'));
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash(__('The product could not be saved. Please, try again.'));
}
Выше работает нормально, однако у меня есть модель ProductComponent (таблица базы данных product_components)
//View Code
echo $this->Form->create('Product');
echo $this->Form->input('name',array('between' => '<br />'));
echo $this->Form->input('ProductComponent.0.text',array('between' => '<br />'));
echo $this->Form->end(__('Submit'));
//Controller Code
if ($this->Product->saveAssociated($this->request->data)) {
$this->Session->setFlash(__('The product has been saved'));
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash(__('The product could not be saved. Please, try again.'));
}
Форма выбирает это правильно, так как показывает текстовую область, а не стандартный ввод, однако при запуске saveAssociated я получаю ответ:
Таблица базы данных product__components для модели ProductComponent не найдена.
Почему торт ищет стол с двойным подчеркиванием?
Есть идеи?
Обновление для Иссема Дэнни:
public $hasMany = array(
'ProductComponent' => array(
'className' => 'Product_Component',
'foreignKey' => 'product_id',
'dependent' => false,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => '',
'counterQuery' => ''
)
);