Magento2 добавить пользовательские значения в collection-> setOrder - PullRequest
0 голосов
/ 14 февраля 2019

Мне нужно добавить некоторые пользовательские значения в 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 голосов
/ 14 февраля 2019

Вам следует попытаться избавиться от знаков минуса в переменных $lat и $lng, чтобы их можно было правильно объединить.

Как-то так (не проверено).

$latString = '(lat'. (($lat >= 0) ? '-' : '+').abs($lat).')';
$lngString = '(lng'. (($lng >= 0) ? '-' : '+').abs($lng).')';
$collection->setOrder($latString.'*'.$latString.'+'.$lngString.'*'.$lngString, 'ASC');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...