我有一个收藏模型链接到我的用户模型。他与 HasMany 的关系已完成。所以我可以像这样从任何用户那里检索所有收藏夹。
[User] => Array
(
[id] => 60
[username] => username
[email] => xxxxxx@gmail.com
)
[Favorite] => Array
(
[0] => Array
(
[id] => 7
[book_id] => 15
[user_id] => 60
[position] => 1
[created] => 2012-08-08 04:08:54
)
[1] => Array
(
[id] => 6
[book_id] => 17
[user_id] => 60
[position] => 1
[created] => 2012-07-26 04:08:32
)
)
但是这个结果并没有向我显示所有 Book 数据和相关对象。所以 ii 决定用 find('all') 找到它们,给出 id 列表 ([15,16 ....])。唯一的问题是它没有链接到我在 Favorite.created DESC 上的订单。它以另一个顺序检索我的书籍项目。
我的查询实际上看起来像:
$result = $this->User->findById($id);
$conditions = array('Book.id' => Set::extract($result, 'Favorite.{n}.book_id'));
$favorites = $this->Book->find('all', array('conditions' => $conditions));
知道如何改变我的模型关系吗?还是我在 cakephp 中的查询?