路由中“使用”的 Laravel 8 数组可调用语法不起作用

Pan*_*kaj 5 laravel laravel-8

Route::post('/update-client', 
    array(
        'uses' =>  'Client\API\ClientAPIController@Update', 
        'as'   =>  'apiUpdateClient',
    )
);

Route::post('/delete-client', 
    array(
        'uses' =>  'Client\API\ClientAPIController@Delete', 
        'as'   =>  'apiDeleteClient',
    )
);
Run Code Online (Sandbox Code Playgroud)

但是,这些路由现在在 Laravel 8 中不起作用。以下是错误详细信息

目标类 [Client\API\ClientAPIController] 不存在。

如果我像下面这样写并修复它,它会起作用

Route::post('/update-client', 
    array(
        'uses' =>  'App\Http\Controller\Client\API\ClientAPIController@Update', 
        'as'   =>  'apiUpdateClient',
    )
);
Run Code Online (Sandbox Code Playgroud)

题 -

我的路由文件包含许多客户端路由。因此,我没有在每个路由中附加 App\Http\Controller,而是想像下面那样做,

use App\Http\Controllers\Client\API\ClientAPIController;

Route::post('/update-client', 
    array(
        'uses' =>  [ClientAPIController::class, 'Update'], 
        'as'   =>  'apiUpdateClient',
    )
);
Run Code Online (Sandbox Code Playgroud)

上面的代码给了我错误,,,

ReflectionFunction::__construct() 期望参数 1 是字符串,给定数组

我是否对使用参数使用了错误的语法?

Dee*_*apa 6

只需按照 laravel 文档中所述删除“ uses ”即可。

use App\Http\Controllers\Client\API\ClientAPIController;

Route::get('/users', [ClientAPIController::class, 'Update']);
Run Code Online (Sandbox Code Playgroud)

请参阅此文档 https://laravel.com/docs/8.x/upgrade

突然之间,他们改变了我们编写 Laravel 路线的方式