具有隐私的Cakephp复杂查询

具有隐私的Cakephp复杂查询,php,mysql,cakephp,Php,Mysql,Cakephp,我想创建一个带有分页的复杂查询。这是我的查询场景,请帮助我创建它 Friends table id | user_id | friend_id 1 2 3 2 4 2 3 5 1 朋友id属于用户表id。 并且用户id也属于用户表id。 朋友表如此多的关系节省了如此多的用户 user table id name 1 jaskaran 2 kaka 3 rajal 4 name 5 john projects i

我想创建一个带有分页的复杂查询。这是我的查询场景,请帮助我创建它

Friends table 
id | user_id | friend_id
1    2         3
2    4         2
3    5         1
朋友id属于用户表id。 并且用户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 

请帮助我

您可以开始阅读有关检索数据的内容:。 示例:

$posts = $this->Project->find('all', array(
    'conditions' => array(
        'Project.user_id' => $user_id
    )
));
这意味着:从model
Project
(db table
projects
)中查找属于一个id为
$User\u id
的用户的所有帖子(所有项目)。其中,
user\u id
是数据库表
users
(model
user
)的外键

它的意思是:从id=
$project\u id
的模型
project
(数据库表:
projects
)中查找第一篇文章(第一个项目)。您必须将其写入
/app/Controller/projectscocontroller.php中的函数中

使用分页时,它将类似于:

        $this->paginate = array('all', 
            'conditions' => array(
                'Project.id' => $project_id
            ),
            'limit' => 6,
        );
       $posts = $this->paginate($this->Project);

如果您需要更复杂的查询示例,请编写它。

您需要了解sql首先为您提供的结果是什么-这不是cakephp特有的。您希望您的查询返回什么?您能提供一些示例数据和期望的结果吗?实际上我是mysql和db的新手,不知道如何进行长查询:(
        $this->paginate = array('all', 
            'conditions' => array(
                'Project.id' => $project_id
            ),
            'limit' => 6,
        );
       $posts = $this->paginate($this->Project);