[英]CakePHP and HABTM insert/save doesn't work
我被卡在Cakephp插件中,這是我所擁有的
-訂購HABTM地址
-地址模型
這是我在地址模型中的關聯:
public $hasAndBelongsToMany = array(
'Address' => array(
'className' => 'Address',
'joinTable' => 'address_customers',
'foreignKey' => 'customer_id',
'associationForeignKey' => 'address_id'
)
);
我想用一個新地址保存/插入一個新客戶,所以,我認為下面的數組可以工作:
array(
'Customer' => array(
'nom' => 'Khiami',
'prenom' => 'TEST',
'tel' => '0945454545',
'ptel' => '',
'commentaire' => '',
'email' => '',
'anniversaire' => array(
'day' => '08',
'month' => '12',
'year' => '2012'
),
'createdFrom' => 's'
),
'Address' => array(
(int) 0 => array(
'adresse' => 'ADDR TEST',
'cp_id' => '1',
'etage' => '',
'residence' => '',
'batiment' => '',
'appartement' => '',
'type' => 'l',
'code_sonette' => '',
'code_portail' => '',
'code_batiment' => '',
'code_asc' => ''
)
)
)
唯一有效的是當我先保存客戶然后使用下面的數組時:
array(
(int) 0 => array(
'Customer' => array(
'customer_id' => '394'
),
'Address' => array(
'adresse' => 'ADDR TEST',
'cp_id' => '1',
'etage' => '',
'residence' => '',
'batiment' => '',
'appartement' => '',
'type' => 'l',
'code_sonette' => '',
'code_portail' => '',
'code_batiment' => '',
'code_asc' => ''
)
)
)
但是,我仍然沒有填寫關聯表 ! 它僅在地址表中添加一個條目。
由於您在HABTM關系中指定了可連接對象,因此我懷疑其命名約定問題。
您要保存“地址”或“客戶”模型嗎? 因為如果您從Address模型調用它,我想應該已經有一個客戶,在這種情況下,您只需要設置:
$this->request->data['Customer']['Customer'] = $customer_id;
並保存地址數據,它應該在表中創建HABTM關聯。
是的,您應該在兩者中都指定它:
地址模型:
public $hasAndBelongsToMany = array(
'Customer' => array(
'className' => 'Customer',
'joinTable' => 'address_customers',
'foreignKey' => 'address_id',
'associationForeignKey' => 'customer_id'
));
客戶模型:
public $hasAndBelongsToMany = array(
'Address' => array(
'className' => 'Address',
'joinTable' => 'address_customers',
'foreignKey' => 'customer_id',
'associationForeignKey' => 'address_id'
));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.