Как получить чистые GET URL для поиска в laravel 5.4

В настоящее время я работаю над функциональностью поиска проекта в Laravel и пытаюсь получить чистые URL-адреса GET. без какого-либо JS JS тоже будет работать

например, когда я ищу мою форму, перенаправляет меня на

HTTP: //jobs.localhost/search д = привет

но вместо этого я хочу это

Http: //jobs.localhost/search/hello

Мой web.php это:

Route::get('search', ['as' => 'search', 'uses' => 'SearchController@search']);

Форма это:

<form class="form-inline" method="GET" action="{{ action('SearchController@search') }}" id="search-form">
<div class="col-md-5 col-sm-5 col-xs-12 nopadding">
<div class="form-group">

<input type="text" class="form-control" id="form-q" name="q" placeholder="Search a Job">
<i class="icon-magnifying-glass"></i>
</div>
</div>

<div class="col-md-2 col-sm-2 col-xs-12 nopadding">
<div class="form-group form-action">
<button type="submit" class="btn btn-default btn-search-submit">Search <i class="fa fa-angle-right"></i> </button>
</div>
</div>
</form>

В настоящее время в контроллере я просто печатаю значение:

 public function search(Request $request)
{
echo $request['q'];
}

Я уже проверил несколько решений JS или POST, но ни одно из них не работает для меня, это конечный результат, который я ищу: Http: //jobs.localhost/search/hello

Благодарю.

1

Решение

Изменить маршрут на:

Route::get('search/{search}', ['as' => 'search', 'uses' => 'SearchController@search']);

И контроллер для:

public function search(Request $request, $search)
{
echo $search;
}

Тогда вы сможете сделать что-то вроде этого с jQuery:

$('#search-form').on('submit', function(e) {
e.preventDefault();
var search = $('#form-q').val();
window.location('/search/' + search);
})
2

Другие решения

То, что вы хотите, это параметры маршрута. Вы можете найти больше информации Вот.

Проблема, с которой вы можете (и будете) сталкиваться, заключается в том, что маршрут для формы определяется в php (на стороне сервера), а параметр поиска определяется как входной. Если вы не хотите JavaScript, я считаю, что это невозможно без изменения маршрута.

2

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector