1

私は互いに関連する2つのモデルを持っています。

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',

        ),
    );

}

テーブル:accounts -id -user_id -other fields .. ..

users -id -other fields .. ..

1つのモデルからデータを要求すると、このデータのみが返され、関連データは返されません。IDを持つモデルUserをリクエストし、すべてのUser-dataと関連するAccount-dataを返したい。account_idやuser_idではなく1つのパラメータでAccount-modelをリクエストし、すべてのAccount-dataと関連するUser-dataを返すのと同じです。

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

array('Account' => array(...))と

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

array('User' => array(...))のみを返しますが、リクエストはarray('User' => array(...)、'Account' => array(..))を返しません

関連するすべてのデータを取得するにはどうすればよいですか?

あいさつm。

4

1 に答える 1

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 の両方のテーブルにデータがありますか? - 検索クエリを実行しようとしている場所に、モデルが正しくロードされていますか?

于 2013-01-15T18:02:08.323 に答える