0

我有 3 个提供地理位置数据的表(针对这篇文章进行了简化)。

countries:
  id:
  name:

country_regions:
  id:
  country_id: (fk to countries:id)
  name:

country_region_cities:
  id:
  country_region_id: (fk to country_regions:id)
  postal_code:
  name:

当有人去添加地址时,我希望他们选择一个国家并输入他们的邮政编码。由于世界上多个城市可能有相同的邮政编码,这使我们能够找出它们的位置。在 country_region_cities 表中。使用与此类似的查询。

SELECT 
  crc.id as crc_id
FROM
  countries c,
  country_regions cr,
  country_region_cities crc
WHERE 
  c.id=231 and
  crc.postal_code='02199' and
  cr.country_id = c.id and
  cr.id = crc.country_region_id

这是存储在 crc.id 上的任何需要地址数据的表中,而不是存储完整地址。我不确定如何将 2 个字段(country_id 和 postal_code)添加到表单中,并将 country_region_city:id 存储在需要它的表的数据库字段中。

我有一种感觉,我需要创建一个 AbstractType 并将其链接到需要存储关系的表单,但是我是否需要为涉及的其他 2 个表创建更多 AbstractTypes?

4

1 回答 1

0

这样做的方法是通过 Symfony 食谱中描述的自定义数据转换器对象。

http://symfony.com/doc/current/cookbook/form/data_transformers.html

一旦我意识到这一点,我在几个小时内就完成了任务,而且工作很愉快!

于 2012-05-22T13:54:08.560 回答