Cakephp 复杂的HABTM查询,我可以';不行

Cakephp 复杂的HABTM查询,我可以';不行,cakephp,Cakephp,使用CakePhp 2.3 大家好,我正在尝试对我的系统进行一个复杂的查询,但我不知道如何完成它。所以事情是这样的: 这是一个事件系统,成员可以创建事件并向其注册。为此,我有3个表:用户、事件和事件用户。用户HABTM事件,事件HABTM用户。 我还有3种型号: User.php <?php class User extends AppModel{ public $hasAndBelongsToMany = array('Event'); public $hasMany

使用CakePhp 2.3

大家好,我正在尝试对我的系统进行一个复杂的查询,但我不知道如何完成它。所以事情是这样的:
这是一个事件系统,成员可以创建事件并向其注册。为此,我有3个表:用户、事件和事件用户。用户HABTM事件,事件HABTM用户。
我还有3种型号:
User.php

<?php
class User extends AppModel{

    public $hasAndBelongsToMany = array('Event');
    public $hasMany = array('EventUser');
}
<?php
class Event extends AppModel{

    public $hasAndBelongsToMany = array('User');
    public $hasMany = array('EventUser');

}
<?php
class EventUser extends AppModel {

    public $useTable = 'events_users';
    public $belongsTo = array('Event', 'User');

}
<?php
class UsersController extends AppController{
function show($id){

        // User info
        $user = $this->User->find('first', array(
            'recursive' => 0,
            'conditions' => array('User.id' => $id)
            ));

        // Registered events
        $registered = $this->User->EventUser->find('all', array(
            'conditions' => array('User.id' => $id)
            ));

        // Created Events
        $created = $this->User->Event->find('all', array(
            'conditions' => array('Event.userid' => $id)
            ));
        $this->set(compact('user', 'registered', 'created'));

    }
}

您只需要一个型号用户
代码应该是

 <?php
    class User extends AppModel{

    public $hasAndBelongsToMany = array('Event');

    }

谢谢你的回答,但是通过这个查询,我得到了用户id所在的所有元素。我想得到的是有这个用户和其他用户的所有事件。事实上,查询会这样说:在events\u users中获取user\u id=1的所有事件,在他注册的所有事件中获取向他注册的其他用户。我猜它必须在事件中被查询,我猜不是吗?我很迷茫^^^^还有这个可以控制的用法谢谢你的帮助,但我只是放弃了。对于我所需要的,它变得太复杂了,所以我保持简单。
 <?php
    class User extends AppModel{

    public $hasAndBelongsToMany = array('Event');

    }
$data = $this->User->read(null, $id);