使用带有命名空间的Laravel RESTfull

我有个问题 . 我正在为我的应用程序构建一个管理面板,并且由于许多功能,我决定使用RESTfull路由 . 现在,因为我不想在同一个类中阻塞每个函数,所以我也使用命名空间并扩展我的AdminController类 .

问题是,RESTFull适用于AdminController文件中声明的函数,但它不能识别命名空间内更深层的函数 . 这样做的正确方法是什么?

这是我现在的代码:

RESTfull Route

Route::controller('admin', 'Admin\AdminController');

AdminController (/controllers/AdminController.php)

namespace Admin;
use View;

class AdminController extends \BaseController {

public function getSales() {
     echo"Works";
}

DashboardController (/controllers/admin/DashboardController.php

namespace Admin;

use AdminController;
use View;

class DashboardController extends AdminController {

public function getDashboard() {
     echo"Does not work";
}

我可以访问www.domain.com/admin/sales就好了,但是当我访问www.domain.com/admin/dashboard时,它会给我一个“未找到控制器方法”错误 .

回答(1)

3 years ago

我想你应该手动提供这条路线:

Route::controller('admin/dashboard', 'Admin\DashboardController');

在你的代码中,Laravel不知道它应该使用 DashboardController 而不是 AdminController 用于 admin/dashboard 路由