В настоящее время я пытаюсь использовать контейнер приложения Laravel для make
класса, в который вставлена зависимость Model
.
Это следующий файл:
class AbstractAdapter {
public function __construct(Model $model) {
....
}
}
Затем у меня есть другой файл, который является преобразователем пространства имен, который выполняет следующее:
public function resolve($unit, $object): object {
return $this->container->make($qualifiedName);
}
Затем у меня есть другой класс, который просто расширяет AbstractAdapter class
.
namespace App\Adapters;
use Package\AbstractAdapter;
class FooAdapter extends AbstractAdapter {
//
}
Однако, когда я вызываю этот класс, я получаю правильное квалифицированное имя для контейнера, поэтому в этом случае $qualifiedName
будет равно App\Adapters\FooAdapter
, но я продолжаю получать следующую проблему:
" Цель [Illuminate \ Database \ Eloquent \ Model] не создается при сборке [App \ Adapters \ FooAdapter]. "
У меня сложилось впечатление, что при использовании контейнера Io C он способен разрешить класс, а затем ввести зависимости.
Однако, похоже, это проблема только после обновления до Laravel 7, поэтому я не знаю, имеет ли это какое-либо отношение к нему, и он больше не может связывать модель?