-2

我有3個表,如A,B和C .. A和B有關係,但A和C沒有任何連接。 B和C有關。獲取cakephp3中的相關表值

在cakephp3索引操作中,僅返回A和B關係。我需要獲取表C的數據。

表詳細信息:

  1. Purchase_details
  2. measure_inventories
  3. measurement_lables

Table details image

+1

你能你的代碼添加到這個問題,並讓你看着[加載協會(https://book.cakephp.org/3.0/en/orm/query-builder.html#loading-associations) – Sevvlor

+0

添加了一些更多細節..希望它會有用 – user294095

+0

您的索引操作在哪裏?發佈該功能。 –

回答

1

您可以使用contain獲得相關表中的數據..

如果您想關聯關聯,那麼您也可以使用recursive。 但是如果你想這只是一個協會,那麼你可以試試這個:

$data = $this->PurchaseDetails->find('all') 
        ->contain(['MeasurementInventories' => ['MeasurementLables']])->toArray(); 
0

你必須使用含有()來獲取相關的如表/模型數據: -

$data = $this->PurchaseDetails->find()->contain(['MeasurementInventories' => ['MeasurementLables']])->toArray(); 

如果您的要求是隻從measurement_lables顯示的數據,那麼你可以添加選擇(),以獲得您想要的模型數據,如: -

$data = $this->PurchaseDetails->find()->contain(['MeasurementInventories' => ['MeasurementLables']])->select(['MeasurementLables.*'])->toArray(); 

注: - 在使用含有(),你應該肯定的是,莫dels是相互關聯的。例如PurchaseDetails模式應與MeasurementInventories(屬於關聯,的hasMany,hasOne等)

$this->belongsTo('PurchaseDetails', [ 
    'className' => 'MeasurementInventories', 
    'foreignKey' => 'columnName'    
]); 

而且MeasurementInventories與MeasurementLables相關的關聯。

$this->belongsTo('MeasurementInventories', [ 
    'className' => 'MeasurementLables', 
    'foreignKey' => 'columnName'    
]);