2

我是 laravel 的新手。这可能非常简单,但我找不到示例或文档。

我需要将用户重定向到子文件夹中的控制器中的操作。

文件夹结构:

**app**
---**controllers**
------**Admin**
---------AdminHomeController.php (extends AdminController)
------AdminController.php
------BaseController.php
---**models**
---**views**
------**admin**
---------dashboard.php
------login.php

路由.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”的操作。我知道我可以加载视图,但我想重定向。

我的错误是 - Unknown action [AdminHomeController@showAdminDashboard]

4

2 回答 2

4

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

在你转储一个新的自动加载之前,Laravel 不知道你的控制器。从终端简单地运行composer dump-autoload,它将不再需要几秒钟。

于 2013-05-10T00:08:36.307 回答
0

除非您命名控制器,否则我认为您必须使用下划线来引用路由中的控制器:

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

});

然后确保重命名 AdminHomeController 类:

class Admin_AdminHomeController extends AdminController { 

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

于 2013-10-13T23:42:13.523 回答