Cakephp :模型递归失败

Cakephp :模型递归失败,cakephp,model,associations,Cakephp,Model,Associations,我一直在为一个非常恼人的问题头疼。我有两个模型课: class User extends AppModel { var $name = 'User'; var $hasMany = array( 'Application' => array( 'className' => 'Application', 'foreignKey' => 'user_id', 'dependent

我一直在为一个非常恼人的问题头疼。我有两个模型课:

class User extends AppModel {
    var $name = 'User';
    var $hasMany = array(
        'Application' => array(
            'className' => 'Application',
            'foreignKey' => 'user_id',
            'dependent' => false,
        )
    );
}

class Application extends AppModel {
    var $name = 'Application';
    var $belongsTo = array(
        'User' => array(
            'className' => 'User',
            'foreignKey' => 'user_id',
        )
    );
}
我想拉应用程序和与之相关联的用户字段

   $this->Applications->find();
无论我将$recursive设置为什么,它仍然只提供一个输出:

Array
(
    [Applications] => Array
        (
            [id] => 1
            [user_id] => 3
            [datecreated] => 
            [status] => 
            [source] => 1
        )

)
另一方面,当我从Users表中提取递归设置为2的数据时,我会得到所有用户及其应用程序,以及与应用程序关联的用户数据和与用户关联的应用程序。简单地说,我得到的是:

Array
(
    [0] => Array
        (
            [User] => Array
                (
                    [id] => 3
                    [email] => email@email.email
                    [password] => hashstring
                    [socialsecurityno] => 21232134123
                    [role_id] => 3
                    [firstname] => Firstname
                    [lastname] => Lastname
                    [status] => 1
                )

            [Application] => Array
                (
                    [0] => Array
                        (
                            [id] => 1
                            [user_id] => 3
                            [datecreated] => 
                            [status] => 
                            [source] => 1
                            [User] => Array
                                (
                                    [id] => 3
                                    [email] => email@email.email
                                    [password] => hashstring
                                    [socialsecurityno] => 21232134123
                                    [role_id] => 3
                                    [firstname] => Firstname
                                    [lastname] => Lastname
                                    [status] => 1

                                    [Application] => Array
                                        (
                                            [0] => Array
                                                (
                                                    [id] => 1
                                                    [user_id] => 3
                                                    [datecreated] => 
                                                    [status] => 
                                                    [source] => 1
                                                )

                                        )

                                )



                        )

                )

        )
)
我想要的是从应用程序中获取相关的用户信息,就这样。除了在应用程序和用户之间创建habtm关系,我几乎没有什么想法,这在技术上是不正确的,因为一个用户可以有多个应用程序,但一个应用程序只有一个用户

现在,应用程序通过应用程序表中的user_id与用户连接,这。。。应该有点明显,但无论如何可能都应该注意


任何形式的帮助都值得感谢,我真的没有主意。

如果调用
Model::find
时没有参数,Cake会将其视为您提出了以下请求:

Model::find('first',array('limit'=>1));
这解释了为什么它只检索第一个应用程序。要检索所有应用程序,请修改对以下内容的调用:

$this->Application->find('all');
这并不能解释为什么
Model::find
忽略了模型的
递归设置,事实上,我找不到一种方法来重现这个问题,除非这很愚蠢,比如在设置递归级别时键入了模型名(例如
$This->Applications->recursive=1;
;请注意“申请”)


希望这能有所帮助。

问题不在于检索多个应用程序,我完全知道查找需要一个参数来检索多个应用程序。数据库中只有一个应用程序用于测试。问题在于检索关联的模型。不过,我将仔细分析每一种可能的情况,我可能做错了,并且如果我能找到什么。