Как я могу получить доступ к служебным переменным? - PullRequest
0 голосов
/ 05 марта 2019
public function pages($slug, PagesGenerator $pagesGenerator)
{
    $output = $pagesGenerator->getPages($slug);

    $id = $page->getId();

    return $this->render('list.html.twig', [ 'output' => $output,  'id' => $id]);
}

Но я получаю сообщение об ошибке:

Примечание: неопределенная переменная: страница

Ответы [ 2 ]

2 голосов
/ 05 марта 2019
public function pages($slug, PagesGenerator $pagesGenerator)
{
    $output = $pagesGenerator->getPages($slug);

    // here is your error: $page is not defined.
    $id = $page->getId();

    // something like this?
    $id = $output['page']->getId();

    return $this->render('list.html.twig', [ 'output' => $output,  'id' => $id]);
}
1 голос
/ 05 марта 2019

Ваш новый контроллер, очевидно, не имеет переменной template в списке переменных, просто output.Похоже, ваш правильный код должен быть:

  public function pages($slug, PagesGenerator $pagesGenerator)
  {
      $output = $pagesGenerator->getPages($slug);

      return $this->render('list.html.twig', $output);
  }

ОБНОВЛЕНИЕ : Ответ на обновленный вопрос в основном тот же, все, что вам нужно сделать, это либо передать переменную шаблона в виде простого массива

return $this->render('list.html.twig', array_merge($output, ['table' => $table]));

или используйте их в соответствии с их фактической структурой в шаблоне, например {{ output.page }} вместо {{ page }}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...