PHP

Laravel建立Controller時找不到class?

最近在教學生使用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

Laravel建立Controller時找不到class? 有 “ 1 則迴響 ”

  1. 您好~我叫Richie
    我們在尋找Laravel(中高階)的企業內訓老師,不知道您是否有在接洽內訓呢?
    如果您有意願進一步洽談,再麻煩您聯繫我,z.richie@wakeup.com.tw,謝謝!

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s