2014-10-03 47 views
0

假設我有這樣的模式:如何將項目添加到ManyToMany關係?

class Pizza extends CActiveRecord { 
    //... 
    public function relations() { 
     return array(
      'toppings' => array(self::MANY_MANY, 'Topping', 'pizza_toppings(pizza_id,topping_id)') 
     ) 
    } 
    //... 
} 

這等......

class Pizza extends CActiveRecord { 
    //... 
    public function relations() { 
     return array(
      'pizzass' => array(self::MANY_MANY, 'Pizza', 'pizza_toppings(topping_id,pizza_id)') 
     ) 
    } 
    //... 
} 

,並假設存在三個表(比薩,摘心,pizza_toppings)在數據庫中,與指定字段pizza_toppings。

我嘗試這樣做:

$pizza = new Pizza(); 
$pizza->save(false);//save, no validate 
$topping = new Topping(); 
$topping->save(false);//save, no validate 
$pizza->toppings[] = $topping; 

但是,當我以這種方式增加,我獲得一個E_NOTICE說這樣的分配沒有影響。

問題:如何將Yii 1.1.15元素添加到M2M關係中?

回答

1

嘗試$pizza->toppings = array($topping);

如果我沒有記錯,他們禁止手動添加項目,但你可以隨時更改整個陣列。

這是解決方法,我猜這不是很乾淨,但它會完成這項工作。如果有人有更好的解決方案,請發佈。

我希望它有幫助

+0

將在下次測試。現在我使用了一箇中間模型 – 2014-10-06 14:01:14

相關問題