@Ellik

Почему привязка интерфейса к классу не работает в ServiceProvider?

Использую данную привязку
$this->app->bind(BoardRepository::class, EloquentBoardRepository::class);
Но передавая в контроллере параметр BoardRepository $boardRepository ничего не происходит никаких ошибок. Убираю параметр и все ок. Подскажите, пожалуйста, что может быть не так. Бьюсь уже второй день.

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use App\Repositories\Contracts\BoardRepository;
use App\Repositories\EloquentBoardRepository;

class RepositoriesServiceProvider extends ServiceProvider
{
    protected $defer = true;

    public function register()
    {
        $this->app->bind(BoardRepository::class, EloquentBoardRepository::class);
        // $this->app->bind(NoteRepository::class, EloquentNoteRepository::class);
    }

    public function provides()
    {
        return [
            BoardRepository::class,
            // NoteRepository::class,
        ];
    }
}


public function __construct(BoardRepository $boardRepository)
{
    dd($boardRepository);
    //$this->boardsRepository = $boardsRepository;
}
  • Вопрос задан
  • 106 просмотров
Пригласить эксперта
Ответы на вопрос 1
@JhaoDa
LaravelRUS Team
Проблема в protected $defer = true;. Либо уберите его, либо удалите services.php из кэша, чтобы он перегенерировался.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы