我是laravel的新手。 这可能非常简单,但我无法找到示例或文档。
我需要将用户重定向到子文件夹中的控制器中的操作。
文件夹结构:
**app**
---**controllers**
------**Admin**
---------AdminHomeController.php (extends AdminController)
------AdminController.php
------BaseController.php
---**models**
---**views**
------**admin**
---------dashboard.php
------login.php
routes.php文件
Route::get('/login', function()
{
return View::make('login');
});
Route::group(array('before' => 'auth'), function()
{
Route::resource('admin', 'AdminHomeController');
});
Route::post('/login', function()
{
Auth::attempt( ['email' => Input::get('email'), 'password' => Input::get('password')] );
**return Redirect::action('AdminHomeController@showAdminDashboard');**
});
登录后我想重定向到名为“showAdminDashboard”的AdminHomeController中的操作。 我知道我可以加载视图,但我想重定向。
我的错误是 - 未知操作[AdminHomeController @ showAdminDashboard] 。
答案 0 :(得分:3)
为控制器之类的东西创建新类时,您需要再次转储Composer自动加载文件,以便更新类映射。如果您打开composer.json
,您应该看到一个classmap
键,该值将是一个目录数组。列出的目录之一是app/controllers
。
在您转储新的自动加载之前,Laravel不了解您的控制器。从终端只需运行composer dump-autoload
,它将不再需要几秒钟。
答案 1 :(得分:0)
除非你命名控制器,我认为你要做的是使用下划线来引用路径中的控制器:
Route::group(array('before' => 'auth'), function()
{
Route::resource('admin', 'Admin_AdminHomeController');
});
然后确保重命名AdminHomeController类:
class Admin_AdminHomeController extends AdminController {
保留文件名“AdminHomeController.php”并将其保留在“Admin”文件夹中。之后,再次运行composer dump-autoload
,我认为你会工作。