【发布时间】:2017-08-30 09:32:44
【问题描述】:
我的控制器是这样的:
...
use App\Repositories\NewsRepository;
class NewsController extends Controller
{
protected $repository;
public function __construct(NewsRepository $repository)
{
$this->repository = $repository;
}
public function store(NewsCreateRequest $request)
{
...
$news = $this->repository->create($input);
...
}
}
我的界面是这样的:
namespace App\Repositories;
use Prettus\Repository\Contracts\RepositoryInterface;
interface NewsRepository extends RepositoryInterface
{
//
}
我的课是这样的:
...
use App\Repositories\NewsRepository;
class NewsRepositoryEloquent extends BaseRepository implements NewsRepository
{
public function model()
{
return News::class;
}
public function boot()
{
$this->pushCriteria(app(RequestCriteria::class));
}
}
我的仓库服务商是这样的:
...
class RepositoryServiceProvider extends ServiceProvider
{
...
public function register()
{
...
$this->app->bind(\App\Repositories\NewsRepository::class, \App\Repositories\NewsRepositoryEloquent::class);
}
}
如果执行控制器上的方法存储,则存在错误:
(1/1) BindingResolutionException 目标 [App\Repositories\NewsRepository] 在构建时不可实例化 [App\Http\Controllers\Member\NewsRepository]。
我该如何解决这个错误?
【问题讨论】:
-
您是否将
RepositoryServiceProvider添加到config/app.php中的providers 数组中? -
@Norris Oduro,是的,我添加了它。像这样:
Prettus\Repository\Providers\RepositoryServiceProvider::class -
你可以在这里发布你的
RepositoryInterface -
@Norris Oduro, github.com/andersao/l5-repository/blob/master/src/Prettus/…
标签: laravel repository laravel-5.4