Я хочу установить переменную на ветку при перенаправлении, например, при использовании методов рендеринга:
return $this->render('socialBundle::index.html.twig',array(
'id' => $id
));
он установит переменную Id в twig: {{id}}
return $this->redirect($this->generateUrl("tuto_animaux_voir", array(
'id' => $id
)));
он установит переменную Id в ссылку: xxxxx.com/Id, я хочу, чтобы эта переменная превращалась в twig при перенаправлении...
извините за эту плохую концепцию и язык, потому что я не англия, и это мой первый вопрос в stackoverflow,
ждать ответа, спасибо
Я не совсем понимаю, что вы хотите сделать, если вы хотите поместить ссылку в шаблон ветки или просто перенаправить с контроллера по условию. если вы можете дать более подробную информацию о том, что вы хотите сделать, я думаю, что смогу вам помочь.
ОБНОВЛЕНИЕ (решение)
Вы можете использовать "Перенаправление в другой контроллер" вместо использования "Перенаправления" и оттуда для отправки переменных в шаблон ветки
Основываясь на вашем последнем комментарии, я пришел к следующему выводу.
Предположим, что у вас есть действие индекса, с маршрутом tuto_animaux_voir
. И маршрут имеет один параметр id
. Он принимает id
как параметр и получает предупреждение из базы данных (у нас есть предупреждения в базе данных). Также у нас есть Alert
объекта с идентификаторами полей (по умолчанию), заголовком.
...
public function indexAction($id){
$alert = $this->getDoctrine()->getEntityManager("AppBundle:Alert")->find($id);
return $this->render("AppBundle:Post:index.html.twig", array(
'alert' => $alert
));
}
В вашем шаблоне index.html.twig
вы можете показать свое предупреждение.
...
{{ alert.title }}
...
Если вы хотите перенаправить действие индекса в ветку.
<a href="{{ path("tuto_animaux_voir", { 'id': alert_id })}}">Alert Title<a>
Также, если вы хотите сделать это действие частичным.
{{ render(controller('AppBundle:Alert:index',{'id': alert_id})) }}
Я думаю, что мой ответ будет полезен для вас.
В вашем случае "tuto_animaux_voir" - это маршрут, связанный с действием контроллера. Данный идентификатор будет доступен как параметр действия, поэтому вы можете передать его следующим образом:
public function fooAction($id)
{
return $this->render(
'socialBundle::foo.html.twig',
['id' => $id]
)
}
Вы также можете извлекать данные из базы данных и передавать их в представление.
Если это не то, что вам нужно достичь, сообщите нам, почему вы хотите использовать перенаправление и что должны делать эти два действия.
Изменить: если я правильно понял ваш комментарий, вы хотите реализовать флеш-сообщения, которые уже доступны в symfony.
Пример в документах прост и понятен.
id
и извлекаетobject
из базы данных.