我正在尝试将2级模型绑定到我的(用户hasmany评论,评论hasmany标签)即时。我试过这个但是不行。也没有找到任何可以在这里或通过谷歌工作。
$this->User->bindModel(array(
'hasMany' => array(
'Comment' => array(
'classname' => 'Comment',
'hasMany' => array(
'Tag' => array(
'classname' => 'Tag'
)
)
)
)
));
还有其他想法吗?
我正在使用Cakephp 2.5.1
答案 0 :(得分:2)
$this->User->bindModel(array(
'hasMany' => array(
'Comment' => array(
'foreignKey' => false,
'conditions' => array('User.id = Comment.user_id')
))));
之后:
$this->User->Comment->bindModel(...)
但是使用Containable Behaviors,你会真正发展得更快,并且可以将Tag与你的评论模型绑定,并且使用"包含"见:http://book.cakephp.org/2.0/fr/core-libraries/behaviors/containable.html
答案 1 :(得分:1)
使用
$this->User->bindModel(array(
'hasMany' => array(
'Comment' => array(
'foreignKey' => false,
'conditions' => array('User.id = Comment.user_id')
),
'Tag' => array(
'foreignKey' => false,
'conditions' => array('Comment.id = Tag.comment_id')
)
)
)
);
请注意,我们将外键设置为false,并强制加入JOIN条件。
<强>更新强>
@MrSmith您在Models.In中使用正确的hasMany关联。用户模型使用hasMany Comment。在注释模型中使用hasMany Tag。如果它不能通过自定义Solution解决,你不需要在这里有飞行关系。无论你不需要这种关系,在飞行中使用unbind模型。获取?要聪明。