これは私のroutes.phpです:
Route::get('/', 'Panel\PanelController@index');
これは私のフォルダです:
Http/
....Controllers/
................Panel/
....................../PanelController.php
これは私のコントローラーです:
namespace App\Http\Controllers;
class PanelController extends Controller {
/* some code here... */
}
これは私が得るものです:
Class App\Http\Controllers\Panel\PanelController does not exist
「composerdump-autoload」コマンドを試しましたが、まだ機能しません。
クラスの名前空間は、ディレクトリ構造と一致する必要があります。この場合、クラスを調整してPanel
を追加する必要があります
namespace App\Http\Controllers\Panel;
// ^^^^^
use App\Http\Controllers\Controller;
class PanelController extends Controller {
/* some code here... */
}
3つの簡単な手順に従ってください
名前空間にフォルダ名を追加します
namespace App\Http\Controllers\Panel;
「useApp\Http\Controllers\Controller;」を追加します。クラス定義の前にコントローラーに
namespace App\Http\Controllers\Panel;
use App\Http\Controllers\Controller;
任意のルートでコントローラーを呼び出すときに、追加されたフォルダー名を追加します
Route::get('foo','Panel\PanelController@anyaction');
「composerdump-autoload」を実行する必要はありません
次のような簡単なサブフォルダーを使用してコントローラーを生成できます。
php artisan make:controller Panel\PanelController
ディレクトリを使用して適切な名前空間とファイルを自動的に作成します。そして、前述のようにルートで参照します。
Route::get('/some','Panel\PanelControllder@yourAction');
ハッピーコーディング!