在 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 的数据。
我需要从 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 的数据。