我知道这个问题有点老了,但我还是找不到合适的解决方案。我已经在互联网上搜索了几天,并尝试了几种解决方案,检查我的文件路径,更新composer.json并转储自动加载它,但仍然没有运气。我仍然收到以下错误:
ReflectionException
Class Cribbb\Storage\User\EUserRepository does not exist
这是我的代码。
控制器(app / controllers / UsersControllers.php):
<?php
use Cribbb\Storage\User\IUserRepository as User;
class UsersController extends \BaseController {
/**
* Display a listing of the resource.
*
* @return Response
*/
public function __construct(User $user)
{
$this->user = $user;
}
?>
接口(lib / Cribbb / Storage / User / IUserRepository.php):
<?php
namespace Cribbb\Storage\User;
interface IUserRepository{
public function all();
public function find($id);
public function create($input);
}
?>
存储库(lib / Cribbb / Storage / User / EUserRepository.php):
<?php
namepsace Cribbb\Storage\User;
use User;
class EUserRepository implements IUserRepository
{
public function all()
{
return User::all();
}
public function find($id)
{
return User::find($id);
}
public function create($input)
{
return User::create($input);
}
}
?>
服务提供商(lib / Cribbb / Storage / StorageServiceProvider.php):
<?php
namespace Cribbb\Storage;
use Illuminate\Support\ServiceProvider;
class StorageServiceProvider extends ServiceProvider {
public function register()
{
$this->app->bind(
'Cribbb\Storage\User\IUserRepository',
'Cribbb\Storage\User\EUserRepository'
);
}
} ?>
我还在app / config / app.php中包含了服务提供商,如下所示:
'providers' => array(
...
'Cribbb\Storage\StorageServiceProvider'
);
我添加了app / lib composer.json:
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php",
"app/lib"
]
}
关于这个的奇怪部分是,虽然IUserRepository和EUserRepository在同一个文件夹中,但Laravel只检测IUserRepository。似乎找不到EUserRepository。 我是否会错过重要的事情?任何建议的人?
答案 0 :(得分:3)
namepsace Cribbb\Storage\User;
它应该是名称空间吗?
修改强>
存储库(lib / Cribbb / Storage / User / EUserRepository.php)有一个拼写错误:
<?php
namepsace Cribbb\Storage\User;
因为您没有使用自动加载,所以只需加载\EUserRepository
类。 (根范围)