在CakePHP应用程序中,我们假设我有两个模型:团队和用户。这些模型在HABTM关系中相互关联(由表teams_users加入)。
假设我们有一个表单,其中某人可以指定详细信息以同时创建新的团队和用户。
同时创建这些记录的最简洁,最直接的方法是什么?彼此之间有关联?
命名表单字段和控制器中的处理有什么“陷阱”?
我想以最友好的方式执行此操作,以便我能够在两个模型上返回验证错误。
答案 0 :(得分:0)
假设所有关联和HABTM设置正确,此方法将进入您的团队模型。
public function createTeam($postData) {
$this->set($postData);
$this->User->set($postData);
$validTeam = $this->validates();
$validUser = $this->User->validates()
if ($validTeam && $validUser) {
$this->create();
$this->save($postData, array('validate' => false);
$this->User->create();
$this->User->save($postData, array('validate' => false);
$this->TeamsUser->create();
$this->TeamsUser->save(array(
'TeamsUser' => array(
'user_id' => $this->getLastInsertId()
'team_id' => $this->User->getLastInsertId()
)
));
return true;
}
return false;
}