Реализация пространственных функций MySQL с использованием Laravel Eloquent ORM


Запрос 1:

"ВЫБЕРИТЕ *из таблицы поиска, ГДЕ столбец >=4"

Красноречивая реализация ORM 'Query1'

$searchResults = SearchTempTable::select(*);

$searchResults = $searchResults->where('column', '>=', 4);

Запрос 2:

"ВЫБЕРИТЕ * ИЗ таблицы поиска, ГДЕ ST_Intersects(столбец, геометрический текст('ПОЛИГОН(($point1x $point1y, $point2x $point2y, $point3x $point3y, $point4x $point4y, $point1x $point1y))'))"

Как "Запрос 2" может быть реализован в красноречивом ORM?

Author: Nimmy Alice Mathew, 2014-12-18

1 answers

Для этого будет работать только оператор raw.

$bindings = [$point1X, $point1Y, ... ];

SearchTempTable::whereRaw(
 "ST_Intersects(column, geomfromtext( 'POLYGON((? ?, ? ?, ? ?, ? ?, ? ?))' ))",
  $bindings
)->get();
 4
Author: Jarek Tkaczyk, 2014-12-18 09:58:29