如何解决Laravel 8中的psr-4错误?
在Laravel 8中,我使用标准结构: 请求看起来很标准:如何解决Laravel 8中的psr-4错误?,laravel,composer-php,Laravel,Composer Php,在Laravel 8中,我使用标准结构: 请求看起来很标准: <?php namespace App\Http\Requests\Api\Category; use Illuminate\Foundation\Http\FormRequest; class StoreCategoryRequest extends FormRequest { public function authorize() { return true; } p
<?php
namespace App\Http\Requests\Api\Category;
use Illuminate\Foundation\Http\FormRequest;
class StoreCategoryRequest extends FormRequest
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'name' => 'required|unique:categories,name'
];
}
}
我也有同样的问题,结果我在复制文件时忘记更改类名。确保这10个文件都有唯一的类名。我没有看到你的代码有任何其他问题,名称空间应该是App
更新:
错误消息显示:
Class App\Http\Requests\Api\Category\StoreCategoryRequest
located in ./app/Http/Requests/Api/Group/StoreCategoryRequest.php
does not comply with psr-4 autoloading standard. Skipping.
如果您查看它,您可以看到StoreCategoryRequest位于“Category”命名空间中,但位于文件夹名“Group”中。我猜您的意思是运行了composer dump autoload
(注意连字符)。您向我们显示了\Api\Category
文件,但错误是关于Api\Group
文件。我们可以看到吗(以及文件名)?屏幕截图中的错误和路径不匹配。您正在查看错误的文件。你需要检查/app/Http/Requests/Api/Group/
。我会全部检查,没有错误。但是在composer dump autoload
之后,我发现报告的名称空间是错误的:/app/Http/Controllers/Api/Group/CategoryController.php
而不是/app/Http/Controllers/Api/Group/GroupController.php
!我清理了缓存,再次上传了composer.json
文件,但没有区别。我可以在错误消息中看到区别。但如主要问题所示,名称空间是可以的,但编写器正在混合名称空间。我复制了文件并更改了所有名称空间。composer是否缓存了一些信息?我认为这不会有帮助,但请尝试composer update
,但它会更新所有软件包。没有作曲家不缓存。我相信你最终会发现你犯的错误。我建议您反复查看这些文件。如果我在本地安装上运行composer dumpautoload
,一切正常……我发现了错误:我使用自动上载。当我复制文件时,它立即被上传。然后我改变了文件名,这也被上传了。但是,由于文件名不同,它不会覆盖第一个文件。。。对不起