Laravel Route传递其他变量

时间:2015-06-29 11:47:10

标签: php laravel frameworks routes

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

  

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

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

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

但我想创建更多用户友好或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.

我想通过路由而不是通过网址传递id。什么是最好的方法。

1 个答案:

答案 0 :(得分:5)

执行以下操作

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

在控制器中,您可以获得type,如下所示

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

   $action = $request->route()->getAction();
   dd($action['type']); 
}

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

我希望它有所帮助。