Форма Symfony: как показать параметр в представлении, «переменная не существует ...» - PullRequest
1 голос
/ 29 февраля 2012

Я использую форму с 2 классами ("ArticleType" и "ArticleHandler") для моей статьи класса.

Я хотел бы отправить идентификатор только что созданной статьи, но мне не удалось отобразить этот параметр в виде:

В контроллере отправляю идентификатор моей статьи:

$handler = new ArticleHandler($form, $request, $em);
if ($handler->process()){
    return $this->redirect($this->generateUrl('myproject_show', array('id' => $article->getId())) );
}

и, по-моему, у меня ошибка с:

{% block body %}
    <p>the id :</p>
    {{ id }}
{% endblock %}

или entity.id (как в CRUD):

Переменная "id" не существует ...
Переменная "entity.id" не существует ...

Знаете, как это исправить?

Спасибо


РЕДАКТИРОВАТЬ: вот мой метод:

public function addAction()
{
    $article = new Article();
    $form = $this->createForm(new ArticleType(), $article);
    $request = $this->getRequest();
    $em = $this->getDoctrine()->getEntityManager();

    $handler = new ArticleHandler($form, $request, $em);
    if ($handler->process()){
        return $this->redirect($this->generateUrl('myproject_show', array('id' => $article->getId())) );
    }

    return $this->render('ProjBlogBundle:Blog:add.html.twig', array(
        'form' => $form->createView(),
    ));
}

и вот вид:

{% extends "ProjBlogBundle::layout.html.twig" %}

{% block title %}
  the title - {{ parent() }}
{% endblock %}

{% block sousbody %}
    <p>here's the article i've just created :</p>
    {{ id }}
{% endblock %}

РЕДАКТИРОВАНИЕ № 2:

myproject_show:
    pattern:  /show/{id}
    defaults: { _controller: ProjBlogBundle:Blog:show, id:5 }

1 Ответ

1 голос
/ 01 марта 2012

Чтобы использовать переменную в шаблоне, вам необходимо передать ее при визуализации шаблона:

//ProjBlogBundle:Blog:show
public function showAction($id)
{
    return $this->render('ProjBlogBundle:Blog:show.html.twig', array(
        'id' => $id
    ));
}

$this->redirect($this->generateUrl('myproject_show', array('id' => $article->getId())) ); возвращает только HTTP-ответ 302 без визуализации шаблона, и браузер перенаправляется насгенерированный URL ...

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