Я не вижу здесь значения / причины для использования синглтона.
Поставщик услуг регистрирует синглтон до того, как ваш маршрут разрешен, поэтому нет способа передать $model
из контроллера в метод регистра. Я бы удалил поставщика услуг и сделал бы следующее:
Из документов :
Если некоторые из зависимостей вашего класса не могут быть разрешены через контейнер, Вы можете внедрить их, передав их как ассоциативный массив в метод makeWith:
$api = $this->app->makeWith('HelpSpot\API', ['id' => 1]);
Так что в вашем случае что-то вроде этого:
public function show($id)
{
return app()->makeWith(MyClass::class, ['myModel' => MyModel::find($id)])->execute();
}
Или с помощью короче привязка модели маршрута :
public function show(MyModel $myModel)
{
return app()->makeWith(MyClass::class, compact('myModel'))->execute();
}
Обратите внимание, что имена аргументов, передаваемые в makeWith
, должны соответствовать именам параметров в конструкторе класса.