Значение контроллера «ноль».Laravel / Вью - PullRequest
0 голосов
/ 25 февраля 2019

Я посылаю параметры контроллеру из Vue по axios, ниже.

getMarkers: function() {
        let bounds = this.map.getBounds();

        let southWest = bounds.getSouthWest();
        let northEast = bounds.getNorthEast();

        axios.get('/ajax', {
            params: {
                fromLat: southWest.lat()-0.05,
                toLat: northEast.lat()-0.05,
                fromLng: southWest.lng()+0.05,
                toLng: northEast.lng()+0.05,
            }
        }).then((response) => {
            this.estates = response.data;
            this.updateMarkers();
        });

},

и затем получение этих данных в контроллере.

public function ajax(Request $request){
    $fromLat = $request->get('fromLat');
    $toLat = $request->get('toLat');
    $fromLng = $request->get('fromLng');
    $toLng = $request->get('toLng');


    $data = \DB::table('allestates')
      ->where('lat', '>', $fromLat)
      ->where('lat', '<', $toLat)
      ->where('lng', '>', $fromLng)
      ->where('lng', '<', $toLng)
      ->get();

      $response = response()->json($data);
      return $response;

}

проблема начинается здесь.Когда я проверяю свою конечную точку (которая "/ajax"), у меня возникает ошибка.

Недопустимая комбинация оператора и значения.

это, потому что $fromLat etc ... в это время не имеет значения ?.проверьте изображение .

Но карта и маркеры работают нормально.хотя я не вижу данных на странице, пока не переместлю карту и не увижу все маркеры.Тогда данные будут видны на странице тоже.Но конечная точка по-прежнему дает ошибку.

спасибо за помощь!

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019

Вы можете проверить наличие нулевых или определенных значений, а затем выполнить условные запросы:

$query  = \DB::table('allestates');

if ($fromLat != NULL && $fromLat != ''){
   $query->where('lat', '>', $fromLat);
}
if ($toLat != NULL && $toLat != ''){
   $query->where('lat', '>', $toLat);
}
if ($fromLng != NULL && $fromLng != ''){
   $query->where('lng', '>', $fromLng);
}
if ($toLng != NULL && $toLng != ''){
   $query->where('lng', '>', $toLng);
}

$result = $query->get(); 
0 голосов
/ 25 февраля 2019
    getMarkers: function() {
    let bounds = this.map.getBounds();

    let southWest = bounds.getSouthWest();
    let northEast = bounds.getNorthEast();

    var from_lat = "";
    if(southWest.lat() != null) {
        from_lat = southWest.lat()-0.05;
    }


    axios.get('/ajax', {
        params: {
            fromLat: from_lat,
            toLat: northEast.lat()-0.05,
            fromLng: southWest.lng()+0.05,
            toLng: northEast.lng()+0.05,
        }
    }).then((response) => {
        this.estates = response.data;
        this.updateMarkers();
    });

    },

Попробуйте это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...