Target class [app\Http\Controllers\TestController] does not exist.
というエラーになったので備忘録。
コード
routes\web.php
Route::get('/test', [\app\Http\Controllers\TestController::class, 'index']);
resources\views\test.blade.php
Hello<?php echo $name ?>さん,
あなたのレベルは、<?php echo $level ?>です。
app\Http\Controllers\TestController.php
<?php
namespace app\Http\Controllers;
use Illuminate\Http\Request;
class TestController extends Controller
{
public function index() {
$data['name'] = 'TEST';
$data['level'] = 11;
return view('test', $data);
}
}
対応
\App\Http\ControllersのAppをappにした。
なぜフォルダ名はAppなのに、名前空間はappでないとダメなのか?
composer.jsonにて、このフォルダはこの名前空間名で呼び出す、というルールになっているため、らしい。
※バージョン
Laravel Framework 9.18.0