重定向到子文件夹- Laravel 4中的控制器动作


Redirect to controller action in sub folder - Laravel 4

我是新来的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');**
});

登录后,我想重定向到AdminHomeController名为"showAdminDashboard"的动作。我知道我可以加载视图,但我想重定向。

我的错误是- 未知操作[AdminHomeController@showAdminDashboard]

当你为控制器之类的东西创建新类时,你需要再次转储Composer自动加载文件,以便更新classmap。如果您打开composer.json,您应该看到一个classmap键,其值将是一个目录数组。其中一个目录将是app/controllers

Laravel不知道你的控制器,直到你转储一个新的自动加载。

从终端简单地运行composer dump-autoload,它将花费不超过几秒钟。

除非你给控制器命名空间,否则我认为你应该在路由中使用下划线来引用控制器:

Route::group(array('before' => 'auth'), function()
{
    Route::resource('admin', 'Admin_AdminHomeController');
});

然后确保重命名AdminHomeController类:

class Admin_AdminHomeController extends AdminController { 

将文件名保留为"AdminHomeController.php",并将其保留在"Admin"文件夹中。之后,再次运行composer dump-autoload,我想你会工作的。