簡體   English   中英

來自第3級的Yii2關系數據

[英]Yii2 relational data from 3rd level

有點連接到我之前的問題

我有以下表/型號: 在此輸入圖像描述

我已經設法加入actionIndex的所有表,但是我想現在為actionView實現相同的東西,但似乎find()findOne()不起作用。 聯接不適用於findModel($ id)

我真的不知道,你能指點我正確的方向嗎? 實際上我只需要在模型BCD視圖中顯示模型A的相關數據,我很確定有一種簡單的方法可以做到,但我找不到任何東西,我甚至不知道該找什么。 問題是,正常的關系,我只能伸出到表B,所以最多2個級別。 我試圖創建一個達到第3級的關系,但它不起作用。 謝謝。

您不必定義多級關系。

如果您必須在BCD中為1條記錄執行此操作,您只需訪問它即可

$BCDmodel->BC->B->A->attribute

當然使用您定義的關系的名稱。

當在表格中顯示此信息時,這也將起作用但是效率非常低。 對於您顯示的每一行,您將收到大量查詢,因此您應該更改查詢以使其更有效。

$query = BCD::find()->with(['BC', 'BC.B', 'BC.B.A']).....

當您確實需要顯示仍可使用的數據時,這會將所有內容連接在一起並使查詢更好

$BCDmodel->BC->B->A->attribute

只要確保您的BCD模型與名為BC的BC有關系,您的BC模型與B的關系稱為B,您的B模型與A的關系稱為A,上述應該有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM