У меня проблема с Symfony 4. Я переношу существующее приложение с Symfony 3.3 на Symfony 4 и получаю ошибку, которую не могу исправить.
вот мой контроллер: BaseController — это контроллер, отвечающий на маршруты sm_admin
class HomeController extends BaseController
{
public function __construct(ParamBagService $parambag, CacheService $cache) {
parent::__construct($parambag, $cache);
$this->routePrefix = 'sm_adminarea_';
}
/**
* @Route("/", name="adminarea_index")
* @Template("@SMAdmin/Home/index.html.twig")
*/
public function indexAction(Area $area = null)
{
$this->area = $area;
return parent::indexAction();
}
}
вот мои маршруты.yaml
sm_admin:
resource: "@SMAdminBundle/Controller/"
type: annotation
prefix: /
sm_admin_area:
resource: "@SMAdminAreaBundle/Controller/"
type: annotation
prefix: /Area/{area}
Когда захожу на маршрут sm_admin
все нормально. когда я перехожу к /area/the_id_of_area
, я получаю следующую ошибку: argument 1 passed to indexAction must be of type Area or null, string provided
Это позволяет мне думать, что параметр области не преобразуется и документ не извлекается из базы данных.
Я попытался добавить эту аннотацию paramConverter: @ParamConverter("area", options={"mapping"={"area"="id"}})
, но получаю ту же ошибку...
Что я делаю не так ?