another_dream
@another_dream
Backend-разработчик, Laravel/ZF2/Yii2

Как правильно написать роуты связанные с БД в Laravel 5?

Роуты:
Route::any('/', function () {
    return redirect()->route('getpage', ['index']);
});

Route::any('{requestedPage}/{requestedSubPage?}', [
    'as' => 'getpage',
    'uses' => 'PagesController@getpage'
]);


Пэйдж-контроллер(функция отвечающая за распределение страниц):
public function getpage($requestedPage = 'index', $requestedSubPage = null)
    {
        $wantedPage = $requestedSubPage ? $requestedSubPage : $requestedPage;

        $page = Pages::findByUrlOrFail($wantedPage);
        if (is_null($page)) {
            abort(404);
        }

        $page = $page->toArray();
        if ($page['type'] == 'static') {

            return view('pages.static')->with($page);

        }
        return redirect()->action('App\Http\Controllers\PagesController@test'); // Эта строка не работает, почему-то
    }


Если тип страницы указан как "динамический", то нужно подключать контроллер для этой страницы. redirect()->action() не работает и именно из-за этого вся проблема, как мне кажется.

Где ошибка? Думается, что роуты запутал немного. Возможно есть вариант другого решения с подобными требованиями?(Инфа о страницах хранится в БД).
Спасибо.
  • Вопрос задан
  • 332 просмотра
Пригласить эксперта
Ответы на вопрос 1
AmdY
@AmdY
PHP и прочие вебштучки
Так у вас в примере выше прописан redirect()->route('getpage', ['index']);
А при обращении к action вы дополнительный параметр не передаёте, потому и невозможно зарезолвить роут. Обязательно нужно передавать значение requestedPage и опционально requestedSubPage
Ответ написан
Ваш ответ на вопрос

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

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