cakephp在动态表上找到

时间:2012-10-16 12:14:07

标签: cakephp dynamic find cakephp-2.1

我有5张桌子:

  1. 表格 - > (字段:id,name)HasMany (表格)

  2. 字段 - > (字段:id,type,name,form_id)HasMany (Fvarchar,Ftext,Ftinyint)BelongsTo(表格)

  3. Fvarchar - > (fields:id,value,field_id)BelongsTo(Field)

  4. Ftext - > (fields:id,value,field_id)BelongsTo(Field)

  5. Ftinyint - > (fields:id,value,field_id)BelongsTo(Field)

  6. 我希望找到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'
                            )
                        )
                    ),
    

    感谢

1 个答案:

答案 0 :(得分:0)

我很难理解你的问题是什么(抱歉,我可以看到英语不是你的第一语言),但我将其解释为你想要包含Field模型,其中类型是其中之一你指定了三个?

这有帮助吗?

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

当然没有经过测试。但是那样的事情。