-2

私はA、B、Cのような3つのテーブルを持っています。AとBは関係を持っていますが、AとCは何の関係も持っていません。 BとCは関連しています。cakephp3で関連テーブルの値を取得

cakephp3のインデックスアクションでは、AとBの関係のみが返されます。iテーブル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からのデータを示すことであるselect()のように、ご希望のモデルデータを取得する: -

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

注: - あなたはMoがそのことを確認する必要があります)(含まれている使用している間デルはお互いに関連している。例えばPurchaseDetailsモデルは

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

とMeasurementInventories(... belongsToの、hasManyの、hasOneのなど)MeasurementInventoriesに関連付けられている必要がありMeasurementLablesに関連しています。

$this->belongsTo('MeasurementInventories', [ 
    'className' => 'MeasurementLables', 
    'foreignKey' => 'columnName'    
]); 
関連する問題