0

私は5つのテーブルを持っています:

  1. フォーム->(フィールド:id、名前)HasMany(フォーム)

  2. フィールド->(フィールド:id、type、name、form_id)HasMany(Fvarchar、Ftext、Ftinyint)BelongsTo(フォーム)

  3. Fvarchar->(フィールド:id、value、field_id)BelongsTo(フィールド)

  4. Ftext->(フィールド:id、value、field_id)BelongsTo(フィールド)

  5. Ftinyint->(フィールド:id、value、field_id)BelongsTo(フィールド)

でフォームを検索したいのですが、フォームをField[name]->Fvarchar,Ftext,Ftinyint[value]検索しようとすると、次のような結果になります。

$this->Form->find('all',array('contain' => array('Field'=>array('Fvarchar','Ftext','Ftinyint'))

'Form' => array(
            'id' => '1',
            'name' => 'mobile',
            'Field' => array(
                (int) 0 => array(
                    'name' => 'bluetooth',
                    'type' => 'Ftinyint',
                    'id' => '1',
                    'form_id' => '1',
                    'Ftext' => array(),
                    'Fvarchar' => array(),
                    'Ftinyint' => array(
                        (int) 0 => array(
                            'value' => true,
                            'id' => '2',
                            'field_id' => '1'
                        )
                    )
                ),

しかし、Field [type]でテーブル(Ftext、Fvarchar、Ftinyint)をフィルタリングしたい:

'Form' => array(
            'id' => '1',
            'name' => 'mobile',
            'Field' => array(
                (int) 0 => array(
                    'name' => 'bluetooth',
                    'type' => 'Ftinyint',
                    'id' => '1',
                    'form_id' => '1',
                    'Ftinyint' => array(
                        (int) 0 => array(
                            'value' => true,
                            'id' => '2',
                            'field_id' => '1'
                        )
                    )
                ),

ありがとう

4

1 に答える 1

0

あなたの質問が何であるかを理解するのに苦労しています (申し訳ありませんが、英語があなたの母国語ではないことがわかります) が、フィールド モデルを含めたいという意味であると解釈しています。指定?

これは役に立ちますか?

$this->Form->find('all',array(
    'contain' => 'Field',
    'conditions' => array(
        'Field.type' => array(
            'OR' => array('Fvarchar', 'Ftext', 'Ftinyint')
        )
    )
));

もちろん、テストされていません。しかし、そのようなもの。

于 2012-10-17T17:00:49.820 に答える