我想用分页创建一个复杂的查询。这是我的查询方案,请帮我创建
Friends table
id | user_id | friend_id
1 2 3
2 4 2
3 5 1
朋友ID属于用户表ID。 user_id也属于用户表id。 朋友表这么多关系保存了这么多用户
user table
id name
1 jaskaran
2 kaka
3 rajal
4 name
5 john
projects
id user_id title privacy
1 2 abc1 1
2 2 abc2 2
3 2 abc3 3
4 2 abc3 4
privacy 1 public
privacy 2 private
privacy 3 only selected friend
privacy 4 all friend only
proect_selected_friends
project_id | user_id
3 | 3
现在,当用户搜索title =“%abc%”的项目现在显示所有记录时,我想在那里应用条件隐私
1 project display all the user
2 project display no one
3,4,1 project display, which has user_id 3
4,1 project display to 3 or 4
请帮帮我
答案 0 :(得分:0)
您可以开始阅读有关检索数据的信息:http://book.cakephp.org/2.0/en/models/retrieving-your-data.html。 例子:
$posts = $this->Project->find('all', array(
'conditions' => array(
'Project.user_id' => $user_id
)
));
它意味着:查找属于一个ID为Project
的用户的模型projects
(db table $user_id
)的所有帖子(所有项目)。其中user_id
是db table users
的外键(模型User
)。
$post = $this->Project->find('first', array(
'conditions' => array(
'Project.id' => $project_id
)
));
它的意思是:从模型Project
(db表:projects
)中找到id = $project_id
的第一个帖子(第一个项目)。您必须在/app/Controller/ProjectsController.php
通过分页,它将像:
$this->paginate = array('all',
'conditions' => array(
'Project.id' => $project_id
),
'limit' => 6,
);
$posts = $this->paginate($this->Project);
如果你需要更复杂的查询示例,请写下来。