这可能是Symfony2中要解决的一个简单任务,但我真的被困在这里:
我正在建造一个非常简单的商店。有三个实体:Products
,Customers
和Orders
。最后一列包含三列:customer_id
,product_id
和quantity
。该商店只包含一个列出所有产品的页面,每个产品都有一个选择字段,用于选择数量,然后是一个表格来输入您的客户数据。
创建客户数据表单并列出产品本身没有问题(没有选择字段)。
但是,如何创建包含产品选择字段的表单,然后该字段应成为订单实体?
我玩过表单集合,我确实理解了为实体添加标签等所有给定的例子。但是我不知道如何根据我的情况调整它。
我想到的是这样的事情:
// Create new customer
$customer = new Customer();
// At this point, create form and validate it.
// Having trouble here, need a hint to get it right.
...
// If form is ok, loop thru all the products.
// Since I do not know yet how to define the form,
// I don't know yet what to loop over, too.
foreach( ..... ){
if($quantity > 0){
$order = new Order();
$order->setQuantity($quantity);
$order->setProduct($product);
$customer->addOrder($order);
}
}
// then persist $customer, cascading its orders.
...
我花了好几个小时。任何帮助是极大的赞赏。谢谢!
更新
最终我得到了它的工作。我创建了一个OrderFactory
和一个OrderFormType
,并且不得不改变整个设置。下面的回复中提到的AcmePizzaBundle实际上是一个很好的帮助,可以正确地找到缺失的部分。