在Symfony 1中处理关系?

时间:2011-08-25 19:40:13

标签: php symfony1

我需要一些帮助来处理小型symfony应用程序中的某些关系。我有以下结构:

Order
Customer
CustomerOrder

CustomerOrder有一个PK,id,我有两列:Order和Customer表中的order_id和customer_id。客户可以拥有多个订单,而订单只有一个客户。在我的表单中,我如何更改它们以反映这一点?

  • 如何在订单中添加客户?
  • 如何在客户表单中添加所有订单?

顺便说一句,我不是在问如何创建模式,而是如何自定义表单以匹配关系行为。

2 个答案:

答案 0 :(得分:2)

您是否考虑过在Symfony 1中使用内置的多对多关系? http://www.symfony-project.org/doctrine/1_2/en/04-Schema-Files此页面标题为“多对多”。我建议你仔细阅读,你可能会看到你提出的问题的答案。

答案 1 :(得分:0)

这两个都很简单:

How to add the customer in the order form?

假设您的架构/模型构造正确,并且如果您已在lib / model / Customer.class.php中创建了魔术方法__toString(),那么您应该能够在默认订单中看到一个选择的客户框形成。

How to add all the orders in the customer form?

目前还不清楚你想要什么。如果您想在订单表格上查看与客户相关的所有订单,您可以在CustomerOrderPeer中创建一个方法,检索特定客户的所有订单,如下所示:

$this->CustomerOrders = CustomerOrderPeer::getOrdersByCustomer($this->Customer->getId()); 

如果您在操作中调用此方法,则会将这些对象传递到表单模板,您可以在其中为客户创建订单表。