我在编写返回我正在寻找的记录的 CakePHP find() 时遇到问题。
我的联想是这样的:
用户 ->(有很多)-> 朋友,
用户 ->(有很多)-> 帖子
我正在尝试显示所有用户朋友最近帖子的列表,换句话说,列出由当前登录用户的朋友创建的每个帖子。
我能想到的唯一方法是将所有用户朋友的 user_ids 放入一个大数组中,然后循环遍历每个数组,以便 find() 调用看起来像:
$posts = $this->Post->find('all',array(
'conditions' => array(
'Post.user_id' => array(
'OR' => array(
$user_id_array[0],$user_id_array[1],$user_id_array[2] # .. etc
)
)
)
));
我的印象是,这不是最好的做事方式,好像该用户很受欢迎,这是很多 OR 条件。任何人都可以提出更好的选择吗?
为了澄清,这是我的数据库的简化版本:
“用户”表
id
用户名
等
“朋友”
表
id
user_idfriend_id
等
“帖子”表
id
user_id
等