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);

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...