Когда я пытаюсь получить доступ к своей подстранице, появляется эта ошибка
The parameter "id" must be defined.
> Symfony\Component\DependencyInjection\Exception\
InvalidArgumentException
in var/cache/dev/Container6do1xtb/appDevDebugProjectContainer.php (line 4787)
appDevDebugProjectContainer->getParameter('id')
in vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Controller/Controller.php (line 40)
Controller->getParameter('id')
in src/AppBundle/Controller/DefaultController.php (line 22)
// $paginator->setItemCountPerPage(10);// $this->view->paginator = $paginator; } public function blogarticleAction(){ $this->view->blogarticle = \Pimcore\Model\DataObject\Blogpost::getById($this->getParameter("id")); }}
DefaultController->blogarticleAction()
in vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php (line 151)
HttpKernel->handleRaw(object(Request), 1)
in vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php (line 68)
HttpKernel->handle(object(Request), 1, true)
in vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php (line 202)
Kernel->handle(object(Request))
in web/app.php (line 55)
Код, который я использовал для этого
default.html.php
<div class = "post-preview">
<a href = "<?= $this->path('blogpost', [
'id' => $blogpost-> getId(),
'title' => $blogpost -> getTitle(),
]); ?>">
defaultcontroller.php
public function blogarticleAction($id){
$this->view->blogarticle = \Pimcore\Model\DataObject\Blogpost::getById($this->getParam("id"));
}
Настройка RegEx:
конечно, я создал blogarticle.html.php в той же папке, что и default.html.php
Это относится к \ Pimcore \ Model \ DataObject \ Blogpost
Когда я пытаюсь перейти на страницу, автоматически отображается сгенерированный идентификатор 5
$this->getParameter("id") будет искать в контейнере параметр с именем id. Если это идентификатор записи в блоге, вы должны передать его как параметр действия.
Ага. Предполагая, что это обычное приложение Symfony (в чем я не уверен), тогда blogarticleAction ($ id) сработает.
Все тот же ... imgur.com/a/qSo2irJ
когда я проверил, что узнать GET с помощью var_dump ($ _ GET); умри(); он вернул массив (0) {}
Обновите код контроллера в своем вопросе. Связанное изображение по-прежнему показывает, что вы используете getParameter. symfony.com/doc/master/routing.html#creating-routes
Но когда я меняю getParam вместо getParameter, эта случайная ошибка выскакивает. Попытка вызвать неопределенный метод с именем «getParam» класса «AppBundle \ Controller \ DefaultController».






Используйте $id из действия, а не из контейнера
public function blogarticleAction($id){
$this->view->blogarticle = \Pimcore\Model\DataObject\Blogpost::getById($id);
}
$this->getParam("id") Будет искать в контейнере параметр с именем id, который вам не нужен.
Вы должны прочитать https://symfony.com/doc/current/routing.html, который объясняет параметры маршрута.
Похоже, в вашем контейнере нет параметра
iddefined. На что ссылаетсяid(в контроллере)?