cakephp 在不使用视图的情况下保存 HABTM 关系的数据
Posted
技术标签:
【中文标题】cakephp 在不使用视图的情况下保存 HABTM 关系的数据【英文标题】:cakephp save a HABTM relation's data without using a View 【发布时间】:2012-02-20 14:30:05 【问题描述】:我正在使用带有 mysql 的 Cakephp v.2.0。
我有两个模型,Candidate 和 Lottery 与 HABTM 关系相关。
我想在我的 mysql 数据库中保存这个 HABTM 关系的数据,但有两个限制:
1) 我没有使用视图,也就是说,我想手动构造作为保存函数中第一个参数传递的数据数组 - 但它的格式是什么?
2) 没有候选表,因为我的候选模型从 LDAP 加载数据(我已按照 http://bakery.cakephp.org/articles/psychic/2009/03/12/ldap-models-in-cakephp 的教程进行操作)。我只想保存在表彩票和连接表中,candidate_lotteries。
任何想法都将不胜感激。
【问题讨论】:
【参考方案1】:只要您在模型中正确设置了关系,并且您确实拥有 HABTM 表,您就可以简单地执行以下操作:
$this->data['Candidate']['id'] = CANDIDATE_ID;
$this->data['Lottery']['id'] = LOTTERY_ID;
$this->Lottery->save($this->data);
这应该会在 HABTM 表中显示一条新记录。
【讨论】:
您当然可以根据需要将其他数据传递给data['Lottery']
。
当然可以。很好的捕捉@lethal-guitar!我忘记了有时这对每个人来说都不是显而易见的。感谢您提及。以上是关于cakephp 在不使用视图的情况下保存 HABTM 关系的数据的主要内容,如果未能解决你的问题,请参考以下文章
在 HABTM 的情况下,CakePHP 不会保存正确的数据
CakePHP hasAndBelongsToMany (HABTM) 删除加入记录