Laravel 如何使用用户昵称创建路由组

Laravel 如何使用用户昵称创建路由组,laravel,routing,laravel-5.7,Laravel,Routing,Laravel 5.7,现在,我有了用于显示和编辑用户配置文件的自定义路由: 代码: 正如您在这两种情况下看到的,我使用正则表达式,这是代码的重复。此外,我必须创建许多在开始时必须有用户名的路由 问题: 那么,如何创建一组以授权用户的昵称开头的路由器呢?以下是在Laravel中创建带有动态前缀的路由组的示例: Route::prefix('{nickname}')->group(function () { Route::get('/', function($nickname) { echo

现在,我有了用于显示和编辑用户配置文件的自定义路由:

代码:

正如您在这两种情况下看到的,我使用正则表达式,这是代码的重复。此外,我必须创建许多在开始时必须有用户名的路由

问题:


那么,如何创建一组以授权用户的昵称开头的路由器呢?

以下是在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";
}
注意:在具有动态前缀的路由组中创建新路由时,必须将前缀的名称指定为回调函数参数或控制器方法中的变量

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