3 回答
TA贡献1793条经验 获得超6个赞
dd()返回最后一个数据,因为您在每个循环中都将值设置为地址,所以最后一个地址返回最后一个值。
如果你想更新它,你可以这样做:
foreach ($postals as $postal){
$address = $geocoder->getCoordinatesForAddress($postal->postal_code);
DB::table('schools')
->where('postal', $postal->postal_code)
->update(['lat' => $address['lat'], 'lng' => $address['lng']]);
}
TA贡献1805条经验 获得超10个赞
将变量声明$address为数组并尝试
foreach ($postals as $postal){
$address[] = $geocoder->getCoordinatesForAddress($postal->postal_code);
}
TA贡献1836条经验 获得超3个赞
好吧,您知道您查询的地址的邮政编码,并且您有相应的 lat/lng 值。
现在您必须从答案中提取值并构建 UPDATE 查询文本。对于显示的答案是
UPDATE schoools
SET lat = 1.4364557 /* $address->lat */
, lng = 103.8043789 /* $address->lng */
WHERE postal_code = 737758; /* $postal->postal_code */
然后你必须执行它。foreach ($postals as $postal)对每个邮政编码在同一周期内执行此操作。
您还可以更新该address字段(或插入该字段formatted_address并更新它)。
- 3 回答
- 0 关注
- 223 浏览
添加回答
举报
