我有3个表,如A,B和C .. A和B有关系,但A和C没有任何连接。 B和C有关。
在cakephp3中,索引操作仅返回A和B关系。我需要获取表C数据。
表格详情:
答案 0 :(得分:1)
您可以使用contain
获取相关表格的数据..
如果您想要关联关联,那么您也可以使用recursive
。
但是如果你只想要一个关联,那么你可以试试这个:
$data = $this->PurchaseDetails->find('all')
->contain(['MeasurementInventories' => ['MeasurementLables']])->toArray();
答案 1 :(得分:0)
您必须使用contains()来获取关联的表/模型数据,如: -
$data = $this->PurchaseDetails->find()->contain(['MeasurementInventories' => ['MeasurementLables']])->toArray();
如果您的要求是仅显示来自measurement_lables的数据,那么您可以添加select()以获得所需的模型数据,如: -
$data = $this->PurchaseDetails->find()->contain(['MeasurementInventories' => ['MeasurementLables']])->select(['MeasurementLables.*'])->toArray();
注意: - 在使用contains()时,您应确保模型彼此关联。例如,PurchaseDetails模型应该与MeasurementInventories相关联(belongsTo,hasMany,hasOne等...)
$this->belongsTo('PurchaseDetails', [
'className' => 'MeasurementInventories',
'foreignKey' => 'columnName'
]);
MeasurementInventories与MeasurementLables相关联。
$this->belongsTo('MeasurementInventories', [
'className' => 'MeasurementLables',
'foreignKey' => 'columnName'
]);