私はA、B、Cのような3つのテーブルを持っています。AとBは関係を持っていますが、AとCは何の関係も持っていません。 BとCは関連しています。cakephp3で関連テーブルの値を取得
cakephp3のインデックスアクションでは、AとBの関係のみが返されます。iテーブルCのデータを取得する必要があります。
表の詳細:
- Purchase_details
- measure_inventories
- measurement_lables
私はA、B、Cのような3つのテーブルを持っています。AとBは関係を持っていますが、AとCは何の関係も持っていません。 BとCは関連しています。cakephp3で関連テーブルの値を取得
cakephp3のインデックスアクションでは、AとBの関係のみが返されます。iテーブルCのデータを取得する必要があります。
表の詳細:
あなたが関連付けられているテーブルのデータを取得するためにcontain
を使用することができます。..
アソシエーションの関連が必要な場合は、recursive
も使用できます。あなたが唯一の団体でこれをしたい場合は しかし、その後、あなたはこれを試すことができます。
$data = $this->PurchaseDetails->find('all')
->contain(['MeasurementInventories' => ['MeasurementLables']])->toArray();
をあなたが使用する必要が含まれている()のようなテーブル/モデルデータを関連付けられて取得するには: - あなたの条件ならば
$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'
]);
あなたが質問にコードを追加することができますし、あなたが[ロードの関連付け](https://book.cakephp.org/3.0/en/orm/query-builder.html#loading-associations)を見てきました – Sevvlor
さらに詳しい情報を追加しました。役に立つと願っています – user294095
あなたのインデックスアクションはどこですか?その機能も投稿してください。 –