<?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"
],
作曲家转储自动加载
=> 完成
发生此类错误时,我遇到的奇怪事情是关键字namespace
和App'Repositories;
之间有空格 删除后,一切都很好!
如果看起来像这样,请删除供应商文件夹并重新安装 composer
composer install
确保类命名空间正确,或者您也可以在下面运行此命令
composer dump-autoload
如果该类中有一些语法错误,则消息与找不到类相同。
如果有人遇到此错误。我认为,您可能会收到此错误,如果您的存储库类无法访问您的模型,只需在顶部添加use App'User;
,错误应该消失。
当我尝试重新安装Bagisto(在Laravel上(时,我遇到了这样的问题。我删除了项目根目录中的 .env 文件,这解决了问题。
只需重构UserRepository
类,例如MyUserRepository
,只有这个解决了我的问题