我尝试使用larval passport来响应API中的令牌
我流这个博客为我的代码https://blog.logrocket.com/laravel-passport-a-tutorial-and-example-build/
我得到这个错误照明\合同\容器\绑定解决异常:目的类别[验证\使用者验证控制器]
我尝试使用larval passport来响应API中的令牌
我流这个博客为我的代码https://blog.logrocket.com/laravel-passport-a-tutorial-and-example-build/
我得到这个错误照明\合同\容器\绑定解决异常:目的类别[验证\使用者验证控制器]
1条答案
按热度按时间t9aqgxwy1#
它看起来像是在寻找文本类:
Auth\UserAuthController
。这不是完整的命名空间。您要在以下位置查找它:App\Http\Controllers\Auth\UserAuthController
。这看起来像是您的路由文件配置的问题。请参阅https://laravel.com/docs/9.x/routing和https://laravel.com/docs/9.x/controllers或您正在使用的laravel版本。有不同的方法来处理事情。我通常通过指定完整的名称空间来组织路由,如下所示:
另请参阅https://litvinjuan.medium.com/how-to-fix-target-class-does-not-exist-in-laravel-8-f9e28b79f8b4
在Laravel 7之前,RouteServiceProvider.php文件包含以下代码:
它的作用是告诉Laravel使用Web中间件和App\Http\Controllers名称空间加载routes/web.php中的路由,这意味着无论何时使用字符串语法声明路由,Laravel都会在App\Http\Controllers文件夹中查找该控制器。
在Laravel 8中,$namespace变量被删除,Route声明被更改为:
这意味着从Laravel 8开始,当您使用字符串语法声明路由时,Laravel不会在App\Http\Controllers中查找您的控制器。
您也可以通过在RoutesServiceProvider.php文件中添加3行代码来手动添加名称空间:
但通常laravel 8+的做法是在routes文件中使用
use
和::class
,并为控制器指定完整的名称空间。编辑:
在Postman中,您可以将邮件发送到:
并指定字段:
名称、电子邮件、密码和密码确认。
确保电子邮件使用有效的电子邮件地址语法。
确保密码与password_confirmation匹配。
确保您使用的是x-www-form-urlencoded。
对于名称,我使用了:一种
对于电子邮件,我使用了:a@b.com
对于密码,我使用了:一种
对于password_confirmation,我使用了:一种
如果遇到验证错误,您也可以调试它:
编辑UserAuthController.php文件,而不是使用:
请使用try-catch,如下所示:
假设它能正常工作,您将在用户表中看到一个条目: