0

私が何か悪いことをしているのか、それともこれが実際に Cake に期待されている動作なのかはわかりません。

以下は私のコードです:

$tickets = $this->TicketsPrice->Ticket->find('all',array(
    'contain'=> array(                    
        'TicketsType' => array(
                    'conditions' => array(
                        'provider_id' => $provider_id,
                    ),
                ),
            ),
        )
    );

そして、これは私が得るものです:

Array
(
    [0] => Array
        (
            [Ticket] => Array
                (
                    [id] => 17
                    [name] => Telecabina
                    [tickets_type_id] => 9
                )

            [TicketsType] => Array
                (
                    [id] => 9
                    [provider_id] => 5
                    [name] => Name
                )

        )

    [1] => Array
        (
            [Ticket] => Array
                (
                    [id] => 16
                    [name] => Pase General
                    [tickets_type_id] => 8
                )

            [TicketsType] => Array
                (
                    [id] => 8
                    [provider_id] => 5
                    [name] => Name
                )

        )


    [4] => Array
        (
            [Ticket] => Array
                (
                    [id] => 13
                    [name] => Pase fin de semana
                    [tickets_type_id] => 7
                )

            [TicketsType] => Array
                (
                    [id] => 
                    [provider_id] => 
                    [name] => 
                )

        )

配列でチケット 4 を取得するべきではありません。代わりに、provider_id が一致しないため、空の TicketsType 配列を取得します。これは予想通りの結果ですか?

4

1 に答える 1

0

条件が実際にフィルタリングされていることに気付きましたが、含まれているモデルのサブ配列だけでなく、配列全体に対して同じフィルターを実現する方法がわかりません。

foreach を実行して空の ID をチェックすることでそれを行うことができましたが、where SQL 条件で行うのと同じように、find 関数で直接行う方法がわかりません。

于 2012-06-25T15:19:25.487 に答える