我的关系如下:
User hasMany Item, Offer, Watcher
Item BelongsTo User
Item hasMany Offer, Watcher
Offer/Watcher BelongTo Item & User
当我尝试使用此功能获取用户项目时:
$this->loadModel( 'User', $this->Auth->user( 'id' ) );
$this->set( 'user', $this->User->read() );
它获取用户记录,他们正在观看的项目以及他们提供的项目,这很好。
然而,对于他们销售的用户物品,它不会正确获得观察者/优惠。
如果我使用:$this->User->recursive = 2;
那么它只获取user_id,但根本不会将其与用户配置文件相关联!
示例:
我可以通过单独包含模型并以这种方式获取数据来获取此信息,但这是一种黑客攻击。
我想知道是否有人知道更好的方法?!或者即使我的关系是对的:z?
答案 0 :(得分:0)
您是否在所有模型中设置了关系?这意味着您不仅要在User模型中拥有关系,还要在Item,Watcher和Offer模型中拥有关系。
答案 1 :(得分:0)
我明白了!
我将$this->User->Item->find( ... )
用于$this->Item->recursive = 2;
它返回了我想要的数据并且有点额外的,所以我用可包含的行为来控制它。
谢谢!