2

私は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]

4

2 に答える 2

4

コントローラーなどの新しいクラスを作成するときは、クラスマップを更新できるように、Composer オートロード ファイルを再度ダンプする必要があります。開くとcomposer.jsonclassmapキーが表示され、値はディレクトリの配列になります。リストされたディレクトリの 1 つが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 に答える