是否有可能让试图将数据保存到saveAll事务中的相关模型的Model。例如,用户有多个目标,我拨打电话;
$this->User->saveAll($data);
我可以使用一些预定义的attritbute,方法或机制在目标模型类中获取模型用户吗?
感谢您的帮助, 罗兰。
编辑: 假设用户具有图片的假设情况,具有图片模型和具有相应模型的帖子(博客)。这两个都可以评论。因此,我不是为每个模型创建单独的注释模型,而是创建一个中心注释模型。该关联可能看起来像这样;
//In the Picture model
var $hasMany = array(
`` 'Comment' => array(
'className' => 'Comment',
'foreignKey' => 'picture_id',
'conditions' => array('Comment.objectType' => 'picture')
)`
);
Post模型的关联将是类似的,唯一的区别是;
'conditions' => array('Comment.objectType' => 'post')
使用此结构,如果我要查询任何这些模型,将使用objectType字段从数据库表中检索其相应的注释。
如果我要这样做;
$this->Picture->saveAll($data);
,或
$this->Post->saveAll($data);
$ data数组结构良好,包含要保存的Comments部分,在保存事务期间的某个时间点,数据将通过Comment模型保存到comments表中。 我想要的是能够知道它是试图在评论模型的beforeSave方法中保存评论的图片模型,即;
//In the Comment mode
beforeSave() {
//Post model is trying to save a comment here
}
答案 0 :(得分:0)
使用CakePHP,如果您使用hasMany关联模型,则在控制器中可以访问该模型。
在UserModel
中var $hasMany = array('Goal');
在GoalModel
中function myCrazyFunc() {
//crazy stuff happens here
}
在UsersController中
$this->Goal->myCrazyFunc();
//more stuff
$this->User->saveAll($data);