Поисковый запрос laravel с использованием whereHas возвращает неопределенный вызов ajax - PullRequest
0 голосов
/ 23 сентября 2018

У меня есть проблема, когда при поиске в базе данных с помощью ajax я получаю неопределенное сообщение в консоли, не уверенный, где это происходит не так, как это работает в тестировании.чего я хочу добиться - это получить результаты, соответствующие поисковому запросу, ниже я сейчас использую.

, пока я тестировал это, он работает ... он возвращает коллекцию из 2 массивов объектов..

enter image description here

public function getBusinesses(Request $request){
    if($request->ajax()){
        $businesses = Business::whereHas('address' , function($query) {
            $query->where('area', 'LIKE','%'.request('location').'%');
        })->whereHas('service', function($query) {
            $query->where('service', request('keyword'));
        })->whereHas('service.keywords', function($query){
            $query->where('keyword', request('keyword'));
        })->with(['ratings' => function($query){
        }])->with(['address' => function($query){}])->select('id','name','business_description')->get();
        return response()->json($businesses);
    }
}

Это javascript, когда вызов успешен

      response.forEach(function(data){
        $('#main-content').append(`<div class="section-title-dark"><p>Businesses in your area </p> </div><div class="row"><div class="col-lg-3 col-md-3 col-sm-3 col-3 item-mb"><div class="service-box1 bg-body text-center"><img src="img/service/service8.png" alt="service" class="img-fluid"><div  style="font-weight:300; font-size:85%; padding:10px; flex:1">${data.ratings[0].comment}</div></div></div><div class="col-lg-9 col-md-9 col-sm-9 col-9 item-mb"><div class="service-box1 bg-body text-center"><p class="img-fluid business-name"><a href="/business/${data.name}/${data.id}"> ${data.name} </a></p><div class="rating-score pull-right" style="display: inline-block;background-color: #1ec4b4;color: #ffffff;padding: 5px;width: 35px; text-align: center;">4.9</div><div class="clearfix total-reviews text-small pull-right" style="padding-top:1%; padding-left:90%">26 reviews</div><p class="business-description mb-none" style="font-weight:300;font-size:85%;">${data.business_description}</p><div style="padding-left:82%"><a href="#" class="btn btn-default-outline btn-sm block" style="    background-color: #ffffff; border-color: #cccccc; color: #000000;">Request a Quote</a></div></div></div>`
        );
        console.log(data.id);
      });

Этот следующий код laravel, кажется, работаетно он возвращает компании, которые не имеют адреса, запрошенного в поисковом запросе, и это не то, что я хочу.

if($request->ajax()){
    $businesses = Business::whereHas('address' , function($query) {
        $query->where('area', 'LIKE','%'.request('location').'%');
    })->whereHas('service', function($query) {
        $query->where('service', 'LIKE','%'.request('keyword').'%');
    })->whereHas('service.keywords', function($query){
        $query->where('keyword', 'LIKE','%'.request('keyword').'%');
    })->with(['ratings' => function($query){
    }])->with(['address' => function($query){}])->select('id','name','business_description')->get();
    return response()->json($businesses);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...