Laravel 5存储库注入

格马特科夫斯基

我在Laravel 5中是一个新手,我想做的是一个带有依赖项注入的简单存储库。但是我陷入了这个错误:

传递给App \ Http \ Controllers \ Api \ UserController :: __ construct()的参数1必须实现接口App \ Repositories \ UserInterface,给定App \ Repositories \ UserRepository的实例

这是我的代码:

UserController:

namespace App\Http\Controllers\Api;

    use App\Http\Controllers\Controller;
    use Illuminate\Http\Request;
    use Response;
    use App;
    use Auth;
    use Crypt;
    use Lang;
    use Image;
    use Storage;
    use Config;
    use Validator;
    use App\User;

    use App\Repositories\UserInterface;

    class UserController extends Controller
    {

        protected $config;
        protected $users;

        public function __construct(UserInterface $users)
        {
            $this->middleware('api');
            $this->middleware('auth', ['except' => 'getInfo']);

            $this->users = $users;

            $this->config = Config::get('images.avatar');
        }

用户界面:

namespace App\Repositories;

    use App\Repositories\BaseInterface;

    interface UserInterface extends BaseInterface
    {
    };

BaseInterface:

namespace App\Repositories;

    interface BaseInterface
    {
        public function all();
        public function paginate($count);
        public function find($id);
    }

基本资料库

namespace App\Repositories;

    use App\Repositories\BaseInterface;

    class BaseRepository implements BaseInterface
    {

        protected $model;

        public function __call($name, $args)
        {
            //  $this->getNewInstance()->{$name($args)};
            return call_user_func_array([
            $this->getNewInstance(),
            $method], $args);
        }

        public function all($relations = [])
        {
            $instance = $this->getNewInstance();
            return $instance->with($relations)->all();
        }

        public function find($id, $relations = [])
        {
            $instance = $this->getNewInstance();
            return $instance->with($relations)->find($id);
        }

        public function findOrFail($id, $relations = [])
        {
            $instance = $this->getNewInstance();
            return $instance->with($relations)->findOrFail($id);
        }

        public function paginate($count)
        {

        }

        protected function getNewInstance()
        {
            return new $this->model;
        }

    }

用户资料库

namespace App\Repositories;

    use App\Repositories\BaseRepository;

    Class UserRepository extends BaseRepository
    {
        protected $model = 'App\User';
    }

RepositoryServiceProvider

namespace App\Providers;

    use Illuminate\Support\ServiceProvider;
    use App;

    class RepositoryServiceProvider extends ServiceProvider
    {

        /**
         * Register any error handlers.
         *
         * @return void
         */
        public function boot()
        {

        }

        /**
         * Register the service provider.
         *
         * @return void
         */
        public function register()
        {
            //
            App::bind('App\Repositories\UserInterface', 'App\Repositories\UserRepository');
        }

    }

当然RepositoryServiceProvider是在我的config / app.php中的服务提供商下添加的

请帮忙,我几乎可以确定我已经尝试了所有在Google中找到的内容。

Lukasgeiter

UserRepository必须实现UserInterface

namespace App\Repositories;

use App\Repositories\BaseRepository;

class UserRepository extends BaseRepository implements UserInterface
//                                          ^^^^^^^^^^^^^^^^^^^^^^^^
{
    protected $model = 'App\User';
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Laravel 5存储库注入

来自分类Dev

如何在Laravel 5(5.2)中的另一个存储库类上注入存储库

来自分类Dev

Laravel接口注入修饰后的存储库

来自分类Dev

Laravel模型观察器存储库注入

来自分类Dev

在laravel 5的存储库中使用构造函数注入的优点是什么?

来自分类Dev

Laravel 5的存储库模式

来自分类Dev

Laravel 5在数据库/ Redis中存储会话

来自分类Dev

在数据库列中存储数组-laravel 5

来自分类Dev

Laravel 5-方法注入

来自分类Dev

使用Laravel容器存储库

来自分类Dev

使用Laravel容器存储库

来自分类Dev

Laravel 5模板存储目录

来自分类Dev

Laravel 5存储过程错误

来自分类Dev

Laravel5对模型的依赖注入

来自分类Dev

构造函数依赖注入laravel 5

来自分类Dev

在Laravel 5中使用存储库模式时如何保留助手方法?

来自分类Dev

Laravel 5-获取存储在数据库中的html代码

来自分类Dev

我该使用哪个提供程序来绑定laravel 5中的数据库存储库?

来自分类Dev

Laravel存储库模型中的API调用

来自分类Dev

存储库类不存在(Laravel)

来自分类Dev

Laravel存储库模式与多对多关系

来自分类Dev

存储库类不存在(Laravel)

来自分类Dev

Laravel存储库模型中的API调用

来自分类Dev

Laravel 存储到数据库

来自分类Dev

Laravel在存储之前将数据注入输入中

来自分类Dev

无法从存储Laravel 5获取图像

来自分类Dev

如何存储csv文件laravel 5 php?

来自分类Dev

将存储库注入 ActionFilter

来自分类Dev

在Laravel 5中将缓存作为依赖项注入