Предполагается, что вызов в PayrollspendController::addAction()
является проблемой.
$compData = $this->payrollspendManager->hello($postData);
Это потому, что переменная $this->payrollspendManager
не была определена.
Вы можете видеть в PayrollspendControllerFactory::__invoke
, что вы запросили услугу из контейнера внедрения зависимостей; но не вводите его в конструктор PayrollspendController
.
// PayrollspendControllerFactory::__invoke()
$entityManager = $container->get('doctrine.entitymanager.orm_default');
$payrollspendManager = $container->get(PayrollspendManager::class);
return new PayrollspendController($entityManager);
Вы должны обновить фабрику:
return new PayrollspendController($entityManager, $payrollspendManager);
А также конструктор контроллера, чтобы разрешить новый аргумент (пока вы там, вы также можете ввести подсказку на ожидаемый интерфейс) [1112 ]
use \Doctrine\ORM\EntityManager;
use \Dashboard\Service\PayrollspendManager;
class PayrollspendController extends AbstractActionController
{
// ...
private $entityManager;
private $payrollspendManager;
public function __construct(
EntityManager $entityManager,
PayrollspendManager $payrollspendManager
){
$this->entityManager = $entityManager;
$this->payrollspendManager = $payrollspendManager;
}
// ...
}