假设我有这个模型:
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,topping,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关系中?
答案 0 :(得分:1)
尝试$pizza->toppings = array($topping);
如果我没记错,他们禁止手动添加项目,但您可以随时更改整个数组。
这是解决方案,我想它不是很干净,但它会完成这项工作。如果有人有更好的解决方案,请发帖。
我希望它有所帮助