如何在laravel 5

时间:2015-06-06 12:22:04

标签: php routing laravel-5 wildcard-expansion

我在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');
});

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

路由:: 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');  
});

外卡替换功能名称,并自动转到该功能。

1 个答案:

答案 0 :(得分:0)

你可以使用implicit controllers来做你需要的事情。

首先为隐式控制器声明路由

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

然后,在你的控制器上,你必须遵循一个约定来命名你的路由用HTTP动词来访问它们( get 用于GET, post 用于POST,< em>任何两者)

class UserController extends Controller {

    public function getIndex()
    {
        //
    }

    public function postProfile()
    {
        //
    }

    public function anyLogin()
    {
        //
    }

}

关于文档

中组合方法名称的说明
  

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

public function getAdminProfile() {}