CakePHP没有来自相关模型的数据

时间:2013-01-10 13:52:28

标签: model relationship cakephp-2.1

我有两个相互关联的模型。

class AccountModel extends AppModel {

    public $name = 'Account';
    public $belongsTo = array(
        'User' => array(
            'className' => 'User',
            'foreignKey'   => 'user_id',

        ),
    );
}

class UserModel extends AppModel {

    public $name = 'User';
    public $hasMany = array(
        'Account' => array(
            'className' => 'Account',
            'foreignKey'   => 'user_id',

        ),
    );

}

表: 账户 -ID -用户身份 其他领域......

用户 -ID 其他领域......

从一个模型请求数据只返回此数据,但没有相关数据。 我想请求具有id的模型用户并返回所有用户数据和相关的帐户数据。 与请求具有一个参数的帐户模型相同,而不是使用account_id或user_id,并返回所有帐户数据和相关的用户数据。

$User = $this->Account->findByField($param);

只返回数组('Account'=> array(...))和

$User = $this->User->findById($id);

只返回数组('User'=> array(...))但没有请求返回数组('User'=> array(...),'Account'=> array(..) )

我如何获得所有相关数据?

问候 米。

1 个答案:

答案 0 :(得分:0)

FindBy{fieldname}不允许使用递归选项(如cakephp文档findBy<fieldName>(string $value[, mixed $fields[, mixed $order]]);中所定义)。

为了按关系获取递归数据,您应该使用find方法。

$userData = $this->User->find('first', array(
    'conditions' => array('id' => $userId),
    'recursive' => 1,
));

如果没有返回数据,请检查以下内容: - 是否传递了有效的userId? - 两个表中是否有给定userId的数据? - 在尝试运行查询查询时,模型是否正确加载?