在Symfony 1中处理关系


Working with relations in Symfony 1?

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

Order
Customer
CustomerOrder

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

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

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

您是否考虑过在Symfony 1中使用内置的多对多关系?http://www.symfony-project.org/doctrine/1_2/en/04-Schema-Files在这个页面上有一个标题为"多对多"的部分。我建议你通读一遍,你可能会看到你提出的问题的答案。

这两个都很简单:

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()); 

如果您在操作中调用这个,您将把这些对象传递给表单模板,在那里您将能够为客户创建一个订单表。