2

我正在使用下面的代码在 laravel 中进行管理路由。

Route::group(['prefix' => 'admin'], function() {
Route::get('/', 'Admin\AdminController@home');
Route::get('/users/userList', 'Admin\UserController@userList');
Route::get('/users/detail', 'Admin\UserController@detail');
Route::get('/posts/view', 'Admin\PostController@view');
Route::get('/posts/edit', 'Admin\PostController@edit');
Route::get('/posts/add', 'Admin\PostController@add');
});

这对我来说很好。但是当我在代码中添加新函数时,我必须在路由文件中编写路由。例如:如果我想在用户控制器中添加编辑功能,我必须添加新的路由,例如 .

Route::get('/users/edit', 'Admin\UserController@edit');

所以我必须为每个功能添加路由。

我想知道如何使用通配符进行管理路由,这样我就必须只为控制器编写路由,而不是为每个功能编写路由。

Route::group(['prefix' => 'admin'], function() {
Route::get('/', 'Admin\AdminController@home');
Route::get('/users/:any', 'Admin\UserController@:any');
Route::get('/posts/:any', 'Admin\PostsController@:any');  
});

通配符替换函数名,并自动重定向到该函数。

4

1 回答 1

0

您可以使用隐式控制器来满足您的需求。

首先为你的隐式控制器声明一个路由

Route::controller('users', 'UserController');

然后,在您的控制器上,您必须遵循使用用于访问它们的 HTTP 动词命名路由的约定(get表示 GET,post表示 POST,两者适用)

class UserController extends Controller {

    public function getIndex()
    {
        //
    }

    public function postProfile()
    {
        //
    }

    public function anyLogin()
    {
        //
    }

}

文档中关于组合方法名称的注释

如果您的控制器操作包含多个单词,您可以使用 URI 中的“破折号”语法访问该操作。例如,我们的以下控制器操作UserController将响应users/admin-profileURI:

public function getAdminProfile() {}
于 2015-06-06T13:17:57.190 回答