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


Route::post('/update-client', 
array(
'uses' =>  'ClientAPIClientAPIController@Update', 
'as'   =>  'apiUpdateClient',
)
);
Route::post('/delete-client', 
array(
'uses' =>  'ClientAPIClientAPIController@Delete', 
'as'   =>  'apiDeleteClient',
)
);

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

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

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

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

问题-

我的路由文件包含许多客户端路由。因此,我没有在每个路由中添加App\Http\Controller,而是想如下所示,

use AppHttpControllersClientAPIClientAPIController;
Route::post('/update-client', 
array(
'uses' =>  [ClientAPIController::class, 'Update'], 
'as'   =>  'apiUpdateClient',
)
);

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

ReflectionFunction::__construct((要求参数1为字符串,阵列给定

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

只需按照laravel文档中的说明删除">使用"即可。

use AppHttpControllersClientAPIClientAPIController;
Route::get('/users', [ClientAPIController::class, 'Update']);

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

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

您可以使用新的方式:


Route::post(
'/update-client',
[ClientAPIController::class, 'update']
)->name('apiUpdateClient');
Route::post(
'/delete-client',
[ClientAPIController::class, 'delete']
)->name('apiDeleteClient');

更多信息:https://laravel.com/docs/8.x/routing#named-路由

最新更新