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;
}
Проблема в том, что я не могу попасть внутрь @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');