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

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

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

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

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

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

问题 -

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

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

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

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

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

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

4

2 回答 2

4

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

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

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

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

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

于 2020-09-22T09:13:46.027 回答
2

您可以使用新方法:


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-routes

于 2021-05-25T00:36:57.140 回答