Laravel中Invoke类型控制器的错误

问题描述

我在使用类型控制器时遇到问题。 用PHP artisan make:controller -i创建控制器并添加路由后,转到该路由时,它告诉我Invoke函数不存在。

Here is an image of the error

这是我使用的路线:

Route::get('/portfolio','PortfolioController');

这是控制器的代码

<?PHP
 namespace App\Http\Controllers;
 use Illuminate\Http\Request;

 class PortfolioController extends Controller
 {
 public function __invoke(Request $request)
 {
    /** @var array $portafolio */
    $portafolio = [
        ["title" => "Proyecto #1"],["title" => "Proyecto #2"],["title" => "Proyecto #3"],["title" => "Proyecto #4"],];

    return view("portfolio",compact("portafolio"));
    }
}

我真的不知道为什么会发生此错误,因为invoke函数显然在那儿,所以如果有人知道可能是什么问题,我将非常感激。 我正在使用Laravel的最新版本。

解决方法

您需要使用documentation中的完全限定的类名:

use App\Http\Controllers\PortfolioController;

Route::get('/portfolio',PortfolioController::class);