Laravel Route传递其他变量

Abh*_*ian 4 php frameworks routes laravel

我有一个用户控制器,它返回用户列表,每个用户都属于不同的组。

例如:-$ groups = ['student_users'=> 1,'teacher_users'=> 2,.....]

我可以创建以下路线来访问它们

Route::get('users/{id}', [
        'as'            =>  'user',
        'uses'          =>  'Admin\UserController@listUser'
    ]);
Run Code Online (Sandbox Code Playgroud)

但是我想创建更多这样的用户友好或seo友好的说法

Route::get('users/student', [
        'as'            =>  'student',
        'uses'          =>  'Admin\UserController@listUser'
    ]);

Route::get('users/teacher', [
        'as'            =>  'teacher',
        'uses'          =>  'Admin\UserController@listUser'
    ]);
Route::get('users', [
        'as'            =>  'student',
        'uses'          =>  'Admin\UserController@listUser'
    ]);//by default shows students list.
Run Code Online (Sandbox Code Playgroud)

我想通过路由而不是通过URL传递ID。最好的方法是什么。

pin*_*sia 8

做如下

Route::get('users/student', [
    'as'            =>  'student',
    'type'          =>  'student',
    'uses'          =>  'Admin\UserController@listUser'
]);
Run Code Online (Sandbox Code Playgroud)

在控制器中,您可以得到type如下

public function listUser(\Illuminate\Http\Request $request)

   $action = $request->route()->getAction();
   dd($action['type']); 
}
Run Code Online (Sandbox Code Playgroud)

type只是一个例子。您可以传递任何变量。

希望对您有所帮助。