首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >路由可调用类时的无效路由操作

路由可调用类时的无效路由操作
EN

Stack Overflow用户
提问于 2022-08-11 19:18:39
回答 3查看 204关注 0票数 -1

iam在laravel中是新的,我用laravel 9在routes/api.php上写了这段代码

代码语言:javascript
复制
Route::group([
    'prefix' => 'auth',
    'namespace' => 'Auth'
], function(){
    Route::post('register', 'RegisterController');
});

然后我得到了无法运行的php技工服务,上面说

代码语言:javascript
复制
 UnexpectedValueException 

  Invalid route action: [Auth\RegisterController].

  at G:\PRODUCTIVITY\SANBERCODE\LARAVEL-VUE\TUGAS\laravel-vue-crowdfunding-website-batch-37\crowdfunding-website\vendor\laravel\framework\src\Illuminate\Routing\RouteAction.php:92
     88▕      */
     89▕     protected static function makeInvokable($action)
     90▕     {
     91▕         if (! method_exists($action, '__invoke')) {
  ➜  92▕             throw new UnexpectedValueException("Invalid route action: [{$action}].");
     93▕         }
     94▕
     95▕         return $action.'@__invoke';
     96▕     }

  1   G:\PRODUCTIVITY\SANBERCODE\LARAVEL-VUE\TUGAS\laravel-vue-crowdfunding-website-batch-37\crowdfunding-website\vendor\laravel\framework\src\Illuminate\Routing\RouteAction.php:47
      Illuminate\Routing\RouteAction::makeInvokable("Auth\RegisterController")

  2   G:\PRODUCTIVITY\SANBERCODE\LARAVEL-VUE\TUGAS\laravel-vue-crowdfunding-website-batch-37\crowdfunding-website\vendor\laravel\framework\src\Illuminate\Routing\Route.php:190
      Illuminate\Routing\RouteAction::parse("api/auth/register", ["Auth\RegisterController", "Auth\RegisterController"])

谁来帮帮我吧:)

EN

回答 3

Stack Overflow用户

发布于 2022-08-11 19:39:08

添加RegisterController函数

代码语言:javascript
复制
     Route::group([
    'prefix' => 'auth',
    'namespace' => 'Auth'
], function(){
    Route::post('register', 'RegisterController@store');
});
票数 -1
EN

Stack Overflow用户

发布于 2022-08-11 19:50:00

post函数中,Route中缺少一个参数。

你想要的东西

代码语言:javascript
复制
Route::post('route_name', 'Controller@myFunction')

或者在你的情况下:

代码语言:javascript
复制
Route::post('register', 'RegisterController@registerFunctionName');

每9.x文件的其他变动:

代码语言:javascript
复制
Route::post('register',  [RegisterController::class, 'registerFunctionName']);

请参阅:https://laravel.com/docs/9.x/routing

票数 -1
EN

Stack Overflow用户

发布于 2022-08-11 19:54:32

这是一个可调用的控制器,是吗?

你只需要改变语法

代码语言:javascript
复制
Route::group([
    'prefix' => 'auth',
    'namespace' => 'Auth'
], function(){
    Route::post('register', [RegisterController::class]);
});

然后在路由文件的顶部导入类,并确保控制器中有一个__invoke()的公共方法。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73325875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档