具有laravel的用户模型上的依赖注入/存储库模式

时间:2017-12-05 14:26:44

标签: php laravel dependency-injection repository-pattern

我有一个BaseRepository类,其方法对所有模型都有效。唯一的问题是,User模型派生自使用Illuminate \ Foundation \ Auth \ User。所以它抛出了一个类型错误,因为构造函数需要一个Illuminate \ Database \ Eleoquent \ Model实例。我该如何解决这个问题呢?

这是我的UserRepository.php:

namespace App\Repositories\User;

use App\Model\User; use App\Repositories\Base\BaseRepository;

class UserRepository extends BaseRepository {

public function __construct(User $user)
{
 parent::__construct($user);
}

}

BaseRepository.php

namespace App\Repositories\Base;

use App\User;
use Illuminate\Database\Eleoquent\Model;

class BaseRepository {

public function __construct (Model $model) {
    $this->model = $model;
}

public function all() {

    return $this->model->orderBy('id','desc')->get();


}

}

这是错误:类型错误:传递给App \ Repositories \ Base \ BaseRepository :: __ construct()的参数1必须是Illuminate \ Database \ Eleoquent \ Model的实例,App \ User的实例,在C中调用:\ wamp64 \ WWW \ adblog \应用\库\用户\ UserRepository.ph p

0 个答案:

没有答案