类应用程序存储库用户存储库不存在


Class AppRepositoriesUserRepository does not exist

<?php
namespace App'Http'Controllers;

use Illuminate'Contracts'Auth'Guard;
use Laravel'Socialite'Contracts'Factory as Socialite; 
use App'Repositories'UserRepository;

class SocialController extends Controller
{
    /**
     * Redirect the user to the GitHub authentication page.
     *
     * @return Response
     */
    private $socialite;
     private $auth;
     private $users;
     public function __construct(Socialite $socialite, Guard $auth, UserRepository $users) {   
        $this->socialite = $socialite;
        $this->users = $users;
        $this->auth = $auth;
    }
}

这是我的控制器。当我加载此控制器时,它显示错误,例如

"容器中的反射异常.php第 791 行:类应用程序''存储库''用户存储库不存在"。

谁能给我一个解决方案?

可能是命名空间问题

检查UserRepository文件类的路径。它应该是:

app/Repositories/UserRepository.php

在类文件中,您需要使用此命名空间:

namespace App/Repositories;

这应该有效

你会想做composer dump-autoload它会解决你的问题假设您正确拥有所有命名空间/类名

更改 composer.json 文件。

"自动加载":{

 "autoload": {
    "classmap": [
       "database",
       "app/Repositories"
 ],

作曲家转储自动加载

=> 完成

发生此类错误时,我遇到的奇怪事情是关键字namespaceApp'Repositories;之间有空格 删除后,一切都很好!

如果看起来像这样,请删除供应商文件夹并重新安装 composer

   composer install

确保类命名空间正确,或者您也可以在下面运行此命令

composer dump-autoload

如果该类中有一些语法错误,则消息与找不到类相同。

如果有人遇到此错误。我认为,您可能会收到此错误,如果您的存储库类无法访问您的模型,只需在顶部添加use App'User;,错误应该消失。

当我尝试重新安装Bagisto(在Laravel上(时,我遇到了这样的问题。我删除了项目根目录中的 .env 文件,这解决了问题。

只需重构UserRepository类,例如MyUserRepository,只有这个解决了我的问题