hitakiri
@hitakiri

Как выводить данные в шаблонизаторе Twig?

Доброго времени. Столкнулся с неожиданной проблемой при изучении Symfony. Шаблонизатор Twig выдаёт следующую ошибку:
Method "..." for object "..." does not exist in ... at line

сам шаблон:
{% for all in books %}
<li>{{ all.idBook }}</li>
{% endfor %}

контроллер:
public function BookAction()
    {
        $repository = $this->getDoctrine()->getRepository('BookBundle:Book');

        if (!$repository) {
        throw $this->createNotFoundException('No book found');
        }
        
        $books = $repository->findAll();
        
        $booksContent = $this->render('BookBundle:Default:book.html.twig', array('books' => $books));
        return new Response($booksContent);
    }

маппинг:
/**
     * @var int
     *
     * @ORM\Column(name="id_book", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id_book;

   public function getBookId()                 {return $this->id_book;}

при этом шаблон {{ dump(books) }} выдаёт :
array:3 [▼
  0 => Book {#376 ▼
    #id_book: 1
    ...


Работает на Symfony 3.0.2 и Twig 1.24, config.yml - ничего не менял, дополнительных бандлов нет.
  • Вопрос задан
  • 684 просмотра
Решения вопроса 1
BoShurik
@BoShurik Куратор тега Symfony
Symfony developer
У вас переменная id_book, а геттер getBookId.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
all.idBook
protected $id_book;

тут что-то не сходится
Ответ написан
slimus
@slimus
Symfony, Golang
а у вас метод getIdBook() в entity есть?
По вашим данным не видно всей картины, может быть что угодно
Ответ написан
RussellKvashnin
@RussellKvashnin
WEB-developer
Да тут автор толк-то знает, сами знаете в чем ...
if (!$repository) {
     throw $this->createNotFoundException('No book found');
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы