我有以下表格:
Address
ID,很长,
LATT,
address_1
邮政编码
Jobs
取件(指向
id
中Address
的链接)dropoff(链接到
id
中的Address
)
Quotes
取件(指向
id
中Address
的链接)dropoff(链接到
id
中的Address
)
部分功能是计算pickup
和dropoff
之间的距离,但问题是我目前正在为Jobs
的控制器内部计算此功能当然Quotes
不是很好,因为如果功能发生变化或者其他什么,那么这需要以两种方式改变它。我希望能够重用该功能。
我们的想法是,如果更改了pickup
和dropoff
,则会更改Jobs
表格,然后重新计算两个位置之间的距离。因此,基本上Jobs
和Quotes
将能够访问函数calculateDistance($pickup, $dropoff)
有人建议我可以存储这些内容,以便我不重复并重复使用代码吗?
答案 0 :(得分:2)
最简洁的方法可能是在Address
模型distanceTo
上创建一个函数,该函数将另一个地址对象作为参数并返回当前和参数地址之间的距离
那么,您可以执行以下操作:
$distance = $job->pickup->distanceTo($job->dropoff);
这样,任何Address对象都可以访问此功能。甚至可能稍后在项目中添加的地址链接。