Я пытаюсь улучшить старый проект, построенный с symfony 3.2, но я столкнулся со странной проблемой. Я просто пытаюсь получить некоторые данные в моем контроллере, чтобы отправить их на просмотр. Но по какой-то причине я не могу получить доступ к функции хранилища, которую я сделал из моего контроллера. Вот код:
Репозиторий
class CommandeRepository extends EntityRepository
{
...
public function getSPSExpe()
{
$dql = 'SELECT .....(not showing it for security reason)';
$em = $this->getDoctrine()->getManager('default');
$query = $em->createQuery($dql);
$query->setParameters(array(
'idSite' => 201,
'idEtat' => 9
));
$results = $query->getResult();
return $results;
}
}
Контроллер
class ExpeditionController extends Controller
{
...
public function expeditionSPS(CommandeRepository $repo)
{
$results = $repo->getSPSExpe();
return $this->render('WorkflowFrontOfficeBundle:Expedition:expeditionSPS.html.twig',
['results' => $results]);
}
}
Кажется, хорошо, верно ??! но я получаю эту ошибку: Контроллер ... требует, чтобы вы предоставили значение для аргумента "$ repo". Либо аргумент имеет значение NULL, и значение NULL не было предоставлено, значение по умолчанию не было предоставлено, либо потому, что после этого есть необязательный аргумент
И когда я устанавливаю CommandeRepository $ repo = null в качестве параметра, который я получаю : вызов getSPSExpe () для null ....
Есть ли у вас какие-либо идеи о том, что здесь нужно сделать? Большое спасибо за ваше время.
Благодаря Delboy я немного заглянул в сервисный контейнер более старых symfony версий. Я выполнил "php bin / console debug: хранилище контейнеров и получил:
Information for Service "doctrine.orm.container_repository_factory"
===================================================================
------------------ ----------------------------------------------------------------------
Option Value
------------------ ----------------------------------------------------------------------
Service ID doctrine.orm.container_repository_factory
Class Doctrine\Bundle\DoctrineBundle\Repository\ContainerRepositoryFactory
Tags -
Public no
Synthetic no
Lazy no
Shared yes
Abstract no
Autowired no
Autowiring Types -
------------------ ----------------------------------------------------------------------
Не могу найти, как установить autowired в yes для этого класса.