Пользовательский маршрут Laravel 5 из контроллера поиска

Я очень новичок в Laravel и действительно смотрел бесплатные видео на Laracast, чтобы попытаться получить как можно больше. У меня есть простой поисковый ввод, который принимает почтовый индекс (например: 92804). Он ищет в базе данных и находит почтовый индекс, ищет в строке «провайдера», а затем возвращает представление в зависимости от того, какого провайдера он находит (на данный момент существует 4 провайдера). Например: 92804-> anaheim-> ca-> provider1, поэтому он вернет представление provider1 с необходимыми данными (город и штат). Я получил его работать до этого момента, но когда представление возвращается, оно имеет URL

www.domain.com/search?q=92804.

Как мне составить маршрут или маршруты, чтобы он показывал.

www.domain.com/{city}-{state}-{provider1}

Это будут переменные, поэтому в примере это будет

www.domain.com/anaheim-ca-provider1

Я сделал поиск здесь и нашел это: (но я верю, что это для более старой версии Laravel) Laravel Routing и контроллер для поиска

Мои маршруты:

Route::get('/', 'PagesController@index');
Route::get('search',['uses' => 'SearchController@getSearch','as' => 'search']);
Route::get('/{city}-{state}-{zipcode}',['uses' => 'PagesController@provider1','as' => 'search.provider1']);
Route::get('/{city}-{state}-{zipcode}',['uses' => 'PagesController@provider2','as' => 'search.provider2']);
Route::get('/{city}-{state}-{zipcode}',['uses' => 'PagesController@provider3','as' => 'search.provider3']);
Route::get('/{city}-{state}-{zipcode}',['uses' => 'PagesController@provider4','as' => 'search.provider4'])

;

Моя форма в окне приветствия:

<form  action="search" method="get">
<input type="text"  name="q" placeholder="Search.."/>
<button type="submit">Search</button>
</form>

PagesController:

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use DB;

use App\Http\Requests;
use App\Http\Controllers\Controller;

class PagesController extends Controller
{
public function index()
{

return view('welcome');

}
public function provider1()
{

return view('providers/provider1/provider1Search');

}
public function provider2()
{

return view('providers/provider2/provider2Search');

}
public function provider3()
{

return view('providers/provider3/provider4Search');

}
public function provider4()
{

return view('providers/provider4/provider4Search');

}

}

SearchController:

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use DB;

class SearchController extends Controller
{
public function getSearch(Request $request)
{
$keyword =  $request->input('q');

$data = DB::select("SELECT * FROM `TABLE 13` WHERE `Zip Code` = '$keyword'");

$city = strtolower($data[0]->City);
$state = strtolower($data[0]->State);
$provider = strtolower($data[0]->{'Provider Name'});
$zipcode = $data[0]->{'Zip Code'};

if ($data[0]->{'Provider Name'})
{
switch ($data[0]->{'Provider Name'})
{
case "provider1":
return redirect()->route('search.provider1',[$city,$state,$zipcode])->with('data',$data);
break;
case "provider2":
return return redirect()->route('search.provider2',[$city,$state,$zipcode])->with('data',$data);
break;
case "provider3":
return return redirect()->route('search.provider3',[$city,$state,$zipcode])->with('data',$data);
break;
case "provider4":
return return redirect()->route('search.provider4',[$city,$state,$zipcode])->with('data',$data);
break;
}
}
}
}

Мои взгляды:

  1. provider1Search
  2. provider2Search
  3. provider3Search
  4. provider4Search
  5. добро пожаловать

В представлениях для провайдера поиска я называю город, штат, провайдера следующим образом:

{{$data[0]->City}},{{$data[0]->State}},{{$data[0]->{'Provider Name'}}

Это те переменные, которые я хотел бы использовать в пользовательском маршруте

Пример:

  1. почтовый индекс = 85257 = www.domain.com/scottsdale-az-provider1
  2. почтовый индекс = 92804 = www.domain.com/anaheim-ca-provider2
  3. почтовый индекс = 60605 = www.domain.com/chicago-il-provider3
  4. почтовый индекс = 01527 = www.domain.com/millbury-ma-provider4

0

Решение

Задача ещё не решена.

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

Других решений пока нет …