1

私のモデルには次の関係があります

BasicIndexing belongsTo Applicant

申請者には多数のリクエストがあります

そのため、以下のコードに示すように、BasicIndexing モデルを取得し、申請者モデルと申請者の対応する要求を含めたいと考えています。

$fullCondition = array(
    'contain' => array(
        'Applicant' => array(
            'Request',
            'fields'=>array('Applicant.surname','Applicant.first_name','Applicant.id')
        )
    ),
    'conditions' =>  $conditions,
    'fields'=>array('BasicIndexing.application_date','BasicIndexing.application_number')
);
$this->loadModel('BasicIndexing');
$searchResult = $this->BasicIndexing->find('all',$fullCondition);

問題は、返される結果に$searchResultRequest モデルがまったく含まれていないことです。Applicant モデルのみが含まれ、Request モデルは無視されます。Applicant に関連付けられていないモデルを使用しようとすると、モデルが Applicant モデルに関連付けられていないという警告が表示されます。

Array
(
    [0] => Array
        (
            [BasicIndexing] => Array
                (
                    [application_date] => 2012-04-17
                    [application_number] => BIA170420124356
                )

            [Applicant] => Array
                (
                    [surname] => Kermit
                    [first_name] => Frog
                    [id] => 4f8d3b63-c2bc-48a1-9fb5-0290c982293d
                )
        )
)

何か間違ったことはありますか、それとも Cake 1.3.0 のリリースに問題がありますか?

どんな助けでも大歓迎です。

ありがとう。

4

2 に答える 2

0

それはあなたの配列のせいだと思います。既存の配列に追加するか、配列をfields追加する必要がありますRequest.*fieldsfieldsRequest

したがって、次の 2 つの例のいずれかのようになります。

$fullCondition = array(
    'contain' => array(
        'Applicant' => array(
            'fields'=>array('Applicant.surname','Applicant.first_name','Applicant.id'),
            'Request' => array(
                'fields' => array('*')
            )
        )
    ),
    'conditions' =>  $conditions,
    'fields'=>array('BasicIndexing.application_date','BasicIndexing.application_number')
);

$fullCondition = array(
    'contain' => array(
        'Applicant' => array(
            'fields'=>array('Applicant.surname','Applicant.first_name','Applicant.id', 'Request.*'),
            'Request'
        )
    ),
    'conditions' =>  $conditions,
    'fields'=>array('BasicIndexing.application_date','BasicIndexing.application_number')
);
于 2012-04-20T09:53:17.400 に答える