从CakePHP

时间:2015-05-28 12:20:15

标签: cakephp join cakephp-2.0 has-and-belongs-to-many

我需要从ensures_indicator_data获取数据(与该Indicator数据相关的保证的所有id),我不知道在CakePHP中加入数据的正确方法我的代码不起作用并返回空阵列。

IndicatorDatum模型:

public $hasAndBelongsToMany = array(
        'Assurance' => array(
            'className' => 'Assurance',
            'joinTable' => 'assurances_indicator_data',
            'foreignKey' => 'indicator_datum_id',
            'associationForeignKey' => 'assurance_id',
            'unique' => true,
            'conditions' => '',
            'fields' => '',
            'order' => '',
            'limit' => '',
            'offset' => '',
            'finderQuery' => '',
            'deleteQuery' => '',
            'insertQuery' => ''
        )
    );


function getIndicatorDataAssurance($indi_id){
             $assuranceData = $this->find('all',array(
                'joins' => array(
                     array('table' => 'assurances_indicator_data',
                           'type' => 'INNER',
                        'conditions' => array(
                    'AssurancesIndicatorData.indicator_datum_id' => $cun_indi)))));


            return $assuranceData;


             }


 }

1 个答案:

答案 0 :(得分:2)

在CakePhp中连接表的最简单方法是必须对每个表示数据库中表的模型进行建模。 下面的示例,您可以将其修改为表和模型的名称:

class ModelOne extends AppModel{
   public $belongTo = array('ModelTwo');

}


class ModelTwo extends AppModel{
    public $hasMany = array('ModelOne');

}

然后在您的控制器中,如果您查询任何这些模型,您的响应数组应包含来自两个表的数据。