最近在教學生使用Laravel的時候,發現書本上原本利用php artisan make:controller所建立的Controller,建立完畢要在web.php中呼叫時卻發現透過以下的程式碼會在執行時出現找不到class的錯誤(假設所建立的Controller叫做TestController,而在其中的public function名稱是index的話):
Route::get('/test', 'TestController@index');
會出現如下所示的錯誤:

仔細地研究了一下,發現原來是Laravel改版,把呼叫的方式做了調整,原本在web.php中所使用的呼叫方法已不適用,要改為如下所示的樣子:
namespace App\Http\Controllers;
...
use App\Http\Controllers\TestController;
...
...
Route::get('/test/', [TestController::class, 'index']);
也就是一開始要引入之前建立的控制器,然後再改為上述所示最後一列的寫法。有相同困擾的同學,改改看吧。如果還是不行的話,那就再試試以下清除快取設定的一些指令吧:
php artisan cache:clear
php artisan route:cache
php artisan config:clear
php artisan view:clear
另外,以下也提供兩個新版本建立會員系統的指令:
composer require laravel/ui
php artisan ui vue --auth
您好~我叫Richie
我們在尋找Laravel(中高階)的企業內訓老師,不知道您是否有在接洽內訓呢?
如果您有意願進一步洽談,再麻煩您聯繫我,z.richie@wakeup.com.tw,謝謝!
讚讚