Как создать группу маршрутов, используя ник пользователя - PullRequest
0 голосов
/ 30 октября 2018

Теперь у меня есть собственные маршруты для отображения и редактирования профиля пользователя:

Код:

Route::get('/{nickname}', 'User\ProfileController@index')->where(['nickname' => '[a-z0-9_]+');

Route::get('/{nickname}/edit', "User\ProfileController@edit")->where(['nickname' => ''[a-z0-9_]+''])->name('edit')->middleware('auth');

Как вы можете видеть здесь, в обоих случаях я использую регулярное выражение, и это повторение кода. Кроме того, мне нужно создать много маршрутов, которые должны иметь имя пользователя в начале.

Вопрос:

Так, как я могу создать группу маршрутизаторов, которые начинаются с псевдонима авторизованного пользователя?

1 Ответ

0 голосов
/ 30 октября 2018

Вот пример создания группы маршрутов с динамическим префиксом в Laravel:

Route::prefix('{nickname}')->group(function () {
    Route::get('/', function($nickname) {
        echo "User nickname: $nickname";
    })->where(['nickname' => '[a-z]+']);

    Route::get('/edit', function($nickname) {
        echo "Edit user with nickname: $nickname";
    });

    Route::get('/post/edit/{id}', function($nickname, $id) {
        echo "User nickname = $nickname and POST ID = $id";
    });

    Route::get('/event/edit/{id}', 'UserController@editEvent');
});

Получить параметры внутри метода контроллера:

public function editEvent($nickname, $id) {
    echo "User nickname = $nickname and Event ID = $id";
}

Примечание: Когда вы создаете новый маршрут в группе маршрутов с динамическим префиксом, вы должны указать имя префикса в качестве переменной в аргументе функции обратного вызова или в методе контроллера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...