@vism

Как в Laravel собирать динамические Url?

Допустим есть роуты
Route::get('parking-lot-atl', 'SearchController@view')->setParamets('id' => 1);
Route::get('parking-best-lot', 'SearchController@view')->setParamets('name' => 'name');
...
Route::get('some-name', 'SomeController@view')->setParamets('parametr' => n);
Хочу хранить УРЛы всего сайта в базе
Хочу через фасад URL собирать правильный УРЛ.

Умеет такое ларавель?
Работал с yii - он умел. А тут не могу найти.

На основе примера
Route::get('test-airport-parking-{lot}', 'SearchController@view')->name('test')->where('lot', '[0-9]+');
Route::get('test2-airport-parking-{lot}', 'SearchController@view')->name('test')->where('lot', '[10-19]+');

\URL::action('SearchController@view', ['lot' => 2])
\URL::action('SearchController@view', ['lot' => 12])

Хочу соответственно получать 2 разных урла, но возвращается всегда последний.
  • Вопрос задан
  • 817 просмотров
Пригласить эксперта
Ответы на вопрос 1
Не совсем понятен вопрос, но всё же попытаюсь ответит:
1) Если вы хотите построить url к конкретной статье, то при создании роута вы должны указать ему имя, а потом вызвать:
route('test', 1) // Lot param
2) Если у вас есть таблица в бд и вам нужно из неё создавать роуты, то:
2.1) Создайте модель Page
2.2) Создайте контроллер PageController
class PageController extends Controller {   
   
                public function show($slug)
                {
                   $page = Page::whereSlug($slug)->firstOrFail();
                    return view('pages.' . $page->view);
               }
              }

2.3) Создайте главный роут
Route::get('/{slug}', array('as' => 'page.show', 'uses' => 'PageController@show'));


Извините, если не так понял)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы