установить переменные для ветки при перенаправлении ссылки?

1

Я хочу установить переменную на ветку при перенаправлении, например, при использовании методов рендеринга:

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,

ждать ответа, спасибо

  • 2
    Вы не можете отправить данные на перенаправление. Вы можете создать другое действие, которое берет ваш параметр id и извлекает object из базы данных.
  • 0
    так что я могу сделать ??
Показать ещё 6 комментариев
Теги:

3 ответа

1
Лучший ответ

Я не совсем понимаю, что вы хотите сделать, если вы хотите поместить ссылку в шаблон ветки или просто перенаправить с контроллера по условию. если вы можете дать более подробную информацию о том, что вы хотите сделать, я думаю, что смогу вам помочь.

ОБНОВЛЕНИЕ (решение)

Вы можете использовать "Перенаправление в другой контроллер" вместо использования "Перенаправления" и оттуда для отправки переменных в шаблон ветки

  • 0
    я просто хочу передать переменную ветке с помощью перенаправления?
  • 0
    Вы можете использовать «Пересылка на другой контроллер» вместо «Перенаправить» и оттуда отправлять переменные в шаблон веточки.
Показать ещё 1 комментарий
0

Основываясь на вашем последнем комментарии, я пришел к следующему выводу.

Предположим, что у вас есть действие индекса, с маршрутом 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})) }}

Я думаю, что мой ответ будет полезен для вас.

  • 0
    хорошо, но это не будет перенаправлять страницу, он покажет идентификатор в ссылке, ... я просто хочу передать его без показа ..
  • 0
    Хорошо. Проблема в том, что вы не можете полностью описать свою бизнес-логику.
Показать ещё 3 комментария
0

В вашем случае "tuto_animaux_voir" - это маршрут, связанный с действием контроллера. Данный идентификатор будет доступен как параметр действия, поэтому вы можете передать его следующим образом:

public function fooAction($id)
{
    return $this->render(
        'socialBundle::foo.html.twig',
        ['id' => $id]
    )
}

Вы также можете извлекать данные из базы данных и передавать их в представление.

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

Изменить: если я правильно понял ваш комментарий, вы хотите реализовать флеш-сообщения, которые уже доступны в symfony.

Пример в документах прост и понятен.

  • 0
    спасибо, но это не перенаправляет ссылку ....?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню