Laravel: уникальный URL и профиль для каждой записи - PullRequest
0 голосов
/ 02 июня 2018

В настоящее время у меня есть таблица со списком «юристов», например.Я могу показать список юристов по штатам, например, в маршрутах / Интернете:

// Lawyers per state

Route::get('/lawyers/{state}', function ($state) {
$states = DB::table('states')->get();
$lawyers = DB::table('lawyers')->join('states', 'states.abbr', '=', 'lawyers.state')
                                       ->where('states.abbr', '=', $state)
                                       ->orderBy('lawyers.featured', 'desc')
                                       ->get(['lawyers.*', 'states.name AS state_name']);
$statename = DB::table('states')->where('abbr', $state)->value('name');
return view('pages.lawyers', ['lawyers' => $lawyers, 'states' => $states, 'statename' => $statename]);
});

Это правильно показывает список юристов.

Я хочу создать уникальный URLдля каждого юриста, например, просмотр страницы профиля со структурой URL /lawyers/{state}/{firstname}-{lastname}-{zipcode}, поэтому щелкнув по его имени в списке, можно перейти к профилю юриста.

Как правильно выполнить эту задачу, чтобы:

  1. URL-адрес юриста показывает lawyers.profile представление
  2. Имя адвоката из списка ссылается направильный URL

Спасибо!

Ответы [ 2 ]

0 голосов
/ 02 июня 2018

В web.php вы можете сделать это.Также использовался кеш в течение $ минут для однократного выполнения запроса к БД

$minutes = 10;
$lawyers = \Illuminate\Support\Facades\Cache::remember('', $minutes, function () {
    return DB::table('lawyer')->get([
        'firstname',
        'lastname',
        'zipcode',
        'state',
    ]);
});

foreach ($lawyers as $lawyer) {
    $url  = sprintf('/%s/%s-%s-%s', $lawyer->state, $lawyer->firstname, $lawyer->lastname, $lawyer->zipcode);
    Route::get($url, 'your action');
}
0 голосов
/ 02 июня 2018

Просто добавьте больше параметров маршрута, как вы сделали для {state}:

Route::get('/lawyers/{state}/{firstname}-{lastname}-{zipcode}', function ($state, $firstname, $lastname, $zipcode) {
    // Logic
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...