簡體   English   中英

Yii關系和關聯表屬性

[英]Yii relation in relation and join table attributes

我有以下模型:產品,附加組件,AddonTypes,ProductAddons。

該架構如下:

Product
id
name

Addons
id
name
type_id

AddonTypes
id
name

ProductAddons
id
product_id
addon_id
price

問題:我該如何關聯這些表以使產品變得簡單

ProductAddons :: model()-> with('addons')-> findAll()嗎?

Q1:現在我得到了相關的插件,但我不知道該如何獲取插件類型? 問題2:如何從聯接表中獲取屬性。 喜歡ProductAddons的價格嗎?

希望這對您有用。 使用“ with()”將始終返回一個數組。 同樣在1:1關系上...其Yii;)。

/* @var $productsWithAddOnly ProductAddons */
$productsWithAddOnly = ProductAddons::model()->with('addons')->findAll();

if (!empty($productsWithAddOnly->addons) && is_array($productsWithAddOnly->addons)) {

    /* @var $addOn Addons */
    foreach ($productsWithAddOnly->addons as $addOn) {
       if (isset($addOn->type)) {
          var_dump($addOn->type);
       } 
    }
}

順便說一句。 您應該保持模型名稱單數...

通過以下方式從產品中獲取所有相關模型:

$criteria=new CDbCriteria;
$criteria->with=array(
    'addons.addons',
);

$prdocutsWithAddOns = Product::model()->findAll($criteria);

暫無
暫無

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

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