在 CakePHP 中从 joined table 获取数据

Get data from joined table in CakePHP

我需要从 assurances_indicator_data 获取数据(与该指标数据相关的保证的所有 ID),我不知道在 CakePHP 中加入数据的正确方法我的代码不知道工作,它 return 一个空数组。

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;


             }


 }

在 CakePhp 中加入 table 的最简单方法是必须在数据库中对每个代表一个 table 的模型进行建模。 下面的例子,你可以修改成你的table和型号的名字:

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

}


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

}

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