1

我的应用程序有 3 种主要对象类型:Person、Home 和 Office。这些对象中的每一个都有一个与之关联的位置(纬度、经度和地址),因此每个表(个人、家庭和办公室)都包含一个 location_id 列,映射到位置表中的位置。

Person、Home 和 Office 都是用一个简单的表单创建的。在这些对象创建表单(PersonForm.class.php、HomeForm.class.php 和 OfficeForm.class.php)中的每一个中,我都嵌入了一个 LocationForm(LocationForm.class.php)。

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

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

在用户提交表单之后,但在将其保存到数据库之前,我想查询 Location 表以查找匹配项(已提交 Location ),如果匹配,则将已经存在的 Location 与这个新创建的 Person 相关联,家庭或办公室对象。

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

4

0 回答 0