我在 Orders 和 Sets 之间建立了多对多的关系。一个订单可以包含多个集合,不同的集合可以属于不同的订单。因为您可以在订单中为一组设置金额,所以应该有一个额外的金额列。因此,例如,一个订单可以由 5 x “Set A”和 10 x “Set B”组成。
这是连接表的架构:
OrderSet:columns:
amount: integer
order_id:
type: integer
primary: true
set_id:
type: integer
primary: true
到目前为止工作正常,我只是不知道如何设置金额列的值。
这就是我保存订单/设置订单关系的方式:
public function saveOrder($data){
$tempSets = $data->sets;
$order = new Order();
unset($data->sets);
$order->merge((array) $data);
foreach($tempSets as $set){
$q = Doctrine_Query::create()
->from('Set s')
->where('s.id = ?', $set->id);
$set = $q->fetchOne();
$order->sets->add($set);
}
$order->save();
}
如何设置每组的数量?
多对多thanx您的帮助。干杯,弗洛里安