cakephp HABTM协会saveAll?
我有两个表和一个联接表。我尝试使用$HASANDBELONGOMANY,但它不起作用,所以我为联接表创建了一个模型并使用了它cakephp HABTM协会saveAll?,cakephp,has-and-belongs-to-many,Cakephp,Has And Belongs To Many,我有两个表和一个联接表。我尝试使用$HASANDBELONGOMANY,但它不起作用,所以我为联接表创建了一个模型并使用了它 User hasMany Membership Membership belongsTo User, Club Club hasMany Membership. 我有一个保存到两个表的表单 function dashboard_add(){ $user = $this->Session->read('User'); $re
User hasMany Membership
Membership belongsTo User, Club
Club hasMany Membership.
我有一个保存到两个表的表单
function dashboard_add(){
$user = $this->Session->read('User');
$register = false;
if (!empty($this->data)) {
if($this->Club->saveAll($this->data)){
$this->Session->setFlash(__('You have registered your club. You will be contacted soon!', true), 'default', array('class' => 'success'));
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash(__('There was a problem with your registration. Please, try again.', true), 'default', array('class' => 'warning'));
}
}
if (empty($this->data)) {
$this->data = $this->User->read(null, $user['User']['id']);
}
$this->set(compact('register'));
}
用户模型具有
var $hasMany = array(
'Membership' => array(
'className' => 'Membership',
'foreignKey' => 'user_id'
)
);
会员制模式已得到改进
var $belongsTo = array('User','Membership');
var $hasMany = array(
'Membership' => array(
'className' => 'Membership',
'foreignKey' => 'club_id'
),
'Upload' => array(
'className' => 'Upload',
'foreignKey' => 'club_id'
)
);
俱乐部模式已经过时
var $belongsTo = array('User','Membership');
var $hasMany = array(
'Membership' => array(
'className' => 'Membership',
'foreignKey' => 'club_id'
),
'Upload' => array(
'className' => 'Upload',
'foreignKey' => 'club_id'
)
);
我没有发现任何错误。俱乐部表将填充,但会员和用户表不会插入/更新
更新:调试($this->Club->save($this->data))强>
Array
(
[User] => Array
(
[id] => 1
[first_name] => this
[last_name] => that
[company_name] => other
[city] => this
[state] => that
[zip] => other
[telephone] => that
[email_address] => this
)
[Club] => Array
(
[address] => fvdfvx
[title] => xcvxcv
[category] => xcvxcv
[modified] => 2012-05-03 06:31:12
)
)
我猜您使用的是CakePHP1.3.x。请参阅文档以了解cake如何同时保存多个模型,您需要生成一个包含所有要保存模型的数组。。例如:
Array
(
[Article] => Array
(
[title] => My first article
)
[Comment] => Array
(
[0] => Array
(
[comment] => Comment 1
[user_id] => 1
)
[1] => Array
(
[comment] => Comment 2
[user_id] => 2
)
)
)
显然,在$this->data中,您只有一个简单的数组[User]。而不是要另存为示例中的多个数组
我希望我帮了忙。
问候。我将阅读文档。在saveAll.correction之后,我用$this->data数组更新了我的问题。我已将其更改为save(),如文档所示。