Magento2在collection-> setOrder中添加自定义值

时间:2019-02-14 07:53:36

标签: collections magento2

我需要在集合的setOrder()中添加一些自定义值,但是它不起作用。

$collection->setOrder("((lat - ".$lat.")*(lat - ".$lat.")) + ((lng - ".$lng.")*(lng - ".$lng."))", 'ASC');

我的集合查询的最后一部分是这样的:

ORDER BY ((lat - -34.9226513)*(lat - -34.9226513)) + ((lng - 138.6094486)*(lng - 138.6094486)) ASC

请帮助任何人。预先感谢。

1 个答案:

答案 0 :(得分:1)

您应该尝试摆脱$lat$lng变量中的减号,以便正确地将它们连接起来。

类似的东西(未经测试)。

$latString = '(lat'. (($lat >= 0) ? '-' : '+').abs($lat).')';
$lngString = '(lng'. (($lng >= 0) ? '-' : '+').abs($lng).')';
$collection->setOrder($latString.'*'.$latString.'+'.$lngString.'*'.$lngString, 'ASC');