具有命名空间的laravel路由资源

tzo*_*zik 3 php routing laravel laravel-4

我正在尝试在Laravel中为我的控制器创建一个资源路径,该控制器位于app\controllers\FormController中.我怎样才能做到这一点?我尝试了以下方式,但没有一个工作.

Router::resource('form', 'app\controllers\FormController');
Router::resource('form', 'app\\controllers\\FormController');
Router::resource('form', 'app/controllers/FormController');



namespace app\controllers;

class FormController extends BaseController {

    public function index()
    {


        return View::make('hello');
    }

}
Run Code Online (Sandbox Code Playgroud)

如果我删除命名空间,它的工作原理.

结果:

ReflectionException (-1) 
Class app\controllers\FormController does not exist
Run Code Online (Sandbox Code Playgroud)

ita*_*chi 6

app/controllers默认加载.但如果您使用不同的命名空间,则可以使用它.

例如,命名空间Site;

Route::resource('form', '\Site\FormController');
Run Code Online (Sandbox Code Playgroud)

还有另一种方式.

假设同一命名空间中有不同的控制器.例如FormController,'BlogController`.你可以把它分组.

Route::group(['namespace' => 'Site'], function()
{
    Route::resource('form', 'FormController');
    Route::resource('blog', 'BlogController');
});
Run Code Online (Sandbox Code Playgroud)

更新#1:

Route::resource('form', 'FormController');
Run Code Online (Sandbox Code Playgroud)

您不需要使用任何命名空间.


Jer*_*dev 5

您可以执行以下操作:

Router::resource('form', 'FormController');
Run Code Online (Sandbox Code Playgroud)

所有课程app/controllers/都由Laravel自动加载.

更新: 您需要将索引功能更改为getIndex().如果使用资源路由,则每个函数都必须以请求方法开头.