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

时间:2013-05-09 23:15:19

标签: php routes laravel laravel-4 controllers

我是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]

2 个答案:

答案 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,我认为你会工作。