动态表上的cakephp查找

动态表上的cakephp查找,cakephp,dynamic,find,cakephp-2.1,Cakephp,Dynamic,Find,Cakephp 2.1,我有5张桌子: 表单->(字段:id,name)有许多 (表格) Field->(字段:id、type、name、form_id)有许多 (Fvarchar、Ftext、Ftinyint)属于STO(表格) Fvarchar->(字段:id、值、字段\u id)属于STO(字段) Ftext->(字段:id、value、field_id)属于sto(字段) Ftinyint->(字段:id,value,field_id)属于sto(field) 我想用Field[name]->Fvarchar、

我有5张桌子:

  • 表单->(字段:id,name)有许多 (表格)

  • Field->(字段:id、type、name、form_id)有许多 (Fvarchar、Ftext、Ftinyint)属于STO(表格)

  • Fvarchar->(字段:id、值、字段\u id)属于STO(字段)

  • Ftext->(字段:id、value、field_id)属于sto(字段)

  • Ftinyint->(字段:id,value,field_id)属于sto(field)

  • 我想用
    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'
                            )
                        )
                    ),
    
    但是我想用字段[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'
                            )
                        )
                    ),
    

    谢谢

    我很难理解您的问题是什么(对不起,我可以看出英语不是您的第一语言),但我将其解释为您希望包含字段模型,其中类型是您指定的三种类型之一

    这有用吗

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

    当然是未经测试的。我试着读了两遍你的问题,但就是听不懂。如果有什么方法可以简化这个问题,我想你会有更好的运气得到答案。去掉任何不相关的内容,使表名不是已经在使用的东西,比如“int”、“tinyint”、“field”…等等。(通常我不建议发布假表名,但-在这种情况下,我认为这将有助于理解。谢谢,我想从result和QueryTanks中筛选(不使用)没有值的表,我有3个表('Fvarchar','Ftext','Ftinyint'),表名保存在Field.type中,我想按此(type)进行查询)并且只使用正确的表,现在当我尝试我的代码蛋糕时,使用查询中的所有3个表('Ftext'=>array(),'Fvarchar'=>array()),请查看我的示例代码。(对不起,我的英语不好)