Автозаполнение вызова Ajax в Laravel - PullRequest
0 голосов
/ 27 сентября 2018

HTML-файл (с использованием лезвия Ларавела):

            <div class="navbar-collapse collapse" id="bs-example-navbar-collapse-1">
                    <div class="input-group" id="search-form">
                        <span class="input-group-text" id="basic-addon1">Search:</span>
                        <input type="text" name="search" size="1" id="search-bar" class="form-control" aria-label="Username" aria-describedby="basic-addon1">
                        @if ( !empty($search) )
                            <ul>
                                @foreach ($search_query as $item)
                                        <li><a href="{{ url('shop/' . $item->url . '/' . $item->purl) }}">{{ $item->ptitle }}</a></li>
                                @endforeach
                            </ul>
                        @endif
                        <button class="btn input-group-text" id="submit-btn">Go!</button>
                    </div>

Метод внутри контроллера:

    public function search(Request $request){
    
        Product::autoComplete($request, self::$data);
        return self::$data;
    
      }

enter image description here

Проблема в том, что я не могу попасть внутрь @if (!empty($search)), хотя естьпеременная $search, содержащая информацию из вызова Ajax (как можно увидеть на прикрепленном скриншоте).

Конечная цель - показать пользователю все термины, которые соответствуют его / ее запросу вdiv под поисковым вводом (что-то вроде панели поиска на YouTube).

Вот остальная часть кода, хотя он работает правильно, как видно из скриншота dd(self::$data):

Модель:

 static public function autoComplete($request, &$data){
        if ( !empty( $request['search'] ) && is_string($request['search'])) {
  
            $search = trim(filter_var($request['search'], FILTER_SANITIZE_STRING));
            $search = strtoupper($search);
            
           
            
            if ($search) {
              
              $data['search'] = DB::table('products AS p')
              ->join('categories AS c', 'c.id', '=', 'p.categorie_id')
              ->select('ptitle', 'article', 'c.url', 'p.purl')
              ->where('ptitle', 'LIKE', '%' . $search . '%')
              ->orWhere('article', 'LIKE', '%' .$search . '%')
              ->get();
              
            }
            
          }
    }

Веб-маршрутизатор:

Route::get('search', 'PageController@search');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...