В Symfony 3.3 у меня есть контроллер TrainingOrganizationController
:
class TrainingOrganizationController extends Controller
{
@Route...
public function deleteAction(Request $request, UserInterface $user, TrainingOrganization $organization)
{
...
$this->delete($user, $organization);
...
}
public function delete(UserInterface $user, TrainingOrganization $organization)
{
$organization->setDeletedAt(new \DateTime());
$organization->setDeletedBy($user);
$entityManager = $this->getDoctrine()->getManager();
$centers = $entityManager->getRepository(TrainingCenter::class)->getResults([
'whereTrainingOrganizationId' => $organization->getId(),
]);
foreach ($centers as $center) {
$this->get(TrainingCenterController::class)->delete($user, $center);
}
}
}
Этот контроллер вызывает другой контроллер: функции TrainingCenterController
и delete()
:
class TrainingCenterController extends Controller
{
public function delete(UserInterface $user, TrainingCenter $center)
{
$center->setDeletedAt(new \DateTime());
$center->setDeletedBy($user);
$entityManager = $this->getDoctrine()->getManager(); // ERROR
...
Но у меня есть эта ошибка в функции delete
: «Вызов функции-члена get() при нулевом значении». Я не понимаю, потому что мой контроллер как сервис имеет конфигурацию по умолчанию:
AppBundle\Controller\:
resource: '../../src/AppBundle/Controller'
public: true
tags: ['controller.service_arguments']
Можете вы помочь мне ? Я хочу вызывать несколько контроллеров для каскадного удаления (а не повторять код) :)