У меня есть контекст, где есть таблица конференций, в которой хранятся конференции.В таблице конференции есть столбец «имя», а также столбец «город».
У меня есть текст ввода типа, и пользователь должен иметь возможность искать названия конференций, а также конференции, которые будут происходить в определенном городе..
Чтобы объяснить лучше: пользователь вводит «Ne» во входном тексте, поэтому должны отображаться результаты, относящиеся как к названиям конференций, так и к названиям городов. Если пользователь нажимает на название конференции, он долженперенаправляется на страницу сведений о конференции. Если он щелкает по городу, в столбце «город» таблицы конференций должны отображаться конференции, для которых в качестве значения выбран город.
Знаете ли вы, как этого можно достичь? На данный момент выполняется только часть отображения конференций в поиске ввода.
Я создал AutocompleteController для этого контекста:
class AutocompleteController extends Controller
{
public function search(Request $request){
$search = $request->term;
$conferences = Conference::where('name', 'LIKE', '%'.$search.'%')->get();
$data= [];
foreach ($conferences as $key => $value){
$data[] = ['id'=> $value->id, 'value' => $value->name . " " . $value->name];
}
return response($data);
}
}
Путь к указанному выше методу:
Route::get('/autocomplete-search', 'AutocompleteController@search');
jQuery:
$("#search").autocomplete({
source: "{{ URL::to('autocomplete-search') }}",
minLength: 2,
select:function(key, value)
{
console.log(value);
}
});
Ввод поиска:
<div class="col col-md-6">
<h4 class="text-white text-center font-weight-bold">Search</h4>
<form class="main-search">
<input type="text" id="search" class="autocomplete dropdown-toggle" placeholder="Conference, Citiy, Category">
</form>
</div>
Таблица конференций:
conferences table
id | name | city | ...
1 | New conference 1 | Newcastle
2 | New conference 2 | Newcastle
3 | old conference 1 | Bristol
4 | old conference 2 | Glasgow