我正在尝试在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');
}
}
如果删除命名空间,它就可以工作。
结果:
ReflectionException (-1)
Class app\controllers\FormController does not exist
答案 0 :(得分:6)
app/controllers
。但如果您使用不同的命名空间,则可以使用它。
e.g。名称空间为Site
;
Route::resource('form', '\Site\FormController');
还有另一种方式。
假设同一命名空间中有不同的控制器。例如FormController
,'BlogController`。你可以分组它。
Route::group(['namespace' => 'Site'], function()
{
Route::resource('form', 'FormController');
Route::resource('blog', 'BlogController');
});
更新#1:
Route::resource('form', 'FormController');
您不需要使用任何名称空间。
答案 1 :(得分:5)
您可以执行以下操作:
Router::resource('form', 'FormController');
Laravel自动加载app/controllers/
中的所有类。
<强>更新强>
您需要将索引函数更改为getIndex()
。如果使用资源路由,则每个函数都必须以请求方法开始。