在Symfony 1.4中进行Dupe查找和用户提交的表单数据的潜在修改

时间:2013-04-23 11:18:15

标签: symfony1 symfony-1.4

我的应用程序有3种主要对象类型:Person,Home和Office。这些对象中的每一个都有一个与之关联的Location(lat,lng和address),因此每个表(Person,Home和Office)都包含一个location_id列,映射到Location表中的Location。

人员,家庭和办公室都是用简单的形式创建的。在每个对象创建表单(PersonForm.class.php,HomeForm.class.php和OfficeForm.class.php)中,我嵌入了一个LocationForm(LocationForm.class.php)。

一切都很好,用户提交有关个人,家庭和/或办公室的数据(包括位置),数据正确保存在数据库中。

因此我的问题是:我的主要对象中不止一个可以拥有/共享完全相同的位置(lat,lng和地址)。例如,Office和Home或者人员和家庭都可以共享相同的位置。也就是说,每当创建对象时,都会在Location表中插入一个新的Location。

用户提交表单后,但在将其保存到数据库之前,我想查询位置表以查找匹配项(提交位置),如果匹配则将新已关联的位置与此相关联创建了Person,Home或Office对象。

我所阅读的大部分内容都指向覆盖对象的save()函数,但如果是这种情况,我会覆盖Location模型中的save()函数并找到匹配项,那么怎么做呢我创建了与正在创建/保存过程中的新对象的关联(正在插入的对象应该得到结果位置匹配的location_id)?

0 个答案:

没有答案