Как я могу объединить две функции в одну (Symfony 4)?

Я пытаюсь совместить эту функцию ...

public function index()
    {
      return $this->render('pages/index.html.twig', ['controller_name' => 'PagesController',]);
    }

... с этой функцией:

public function index()
{
  $pages = $this->getDoctrine()->getRepository(Pages::class)->findAll();
    return $this->render('pages/index.html.twig', array('pages' => $pages));
}

Это мой подход:

public function index()
{
    $pages = $this->getDoctrine()->getRepository(Pages::class)->findAll();
    return $this->render('pages/index.html.twig', array('pages' => $pages),['controller_name' => 'PagesController',]);
}

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

Argument 3 passed to Symfony\Bundle\FrameworkBundle\Controller\Controller::render() must be an instance of Symfony\Component\HttpFoundation\Response or null, array given, called in /Users/work/project/src/Controller/PagesController.php on line 18

Вы по ошибке сделали 2 параметра попробуйте ['pages' => $pages,'controller_name' => 'PagesController',]

RiggsFolly 19.07.2018 15:42
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
109
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вместо передачи третьего аргумента вы должны объединить все данные, которые вы хотите передать в представление, в один массив.

public function index()
{
    $pages = $this->getDoctrine()->getRepository(Pages::class)->findAll();
    return $this->render('pages/index.html.twig', array('pages' => $pages, 'controller_name' => 'PagesController'));
}

@Jarla Кстати, лучше внедрить свой репозиторий в контроллер, а не получать его, как вы. Если нужно, проще посмеяться

Nikita Leshchev 19.07.2018 16:48

Другие вопросы по теме