Параметр "id" должен быть определен - PullRequest
0 голосов
/ 16 мая 2018

Когда я пытаюсь получить доступ к моей подстранице, выскакивает эта ошибка

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:

image

Конечно, я создал blogarticle.html.php в той же папке, что и default.html.php

1 Ответ

0 голосов
/ 16 мая 2018

Использовать $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, который объясняет о параметрах маршрута

...