Как получить часть страницы с другого контроллера - PullRequest
0 голосов
/ 13 января 2012

Мой сайт, у меня есть контент, можно проголосовать (+/-). Теперь он работает нормально, когда у всего контента есть свой избиратель. Сейчас я ищу способ создания единого пакета голосования с сущностью (votedModel, votedId, user, голосования). В основном комплект готов. Моя проблема в том, как его использовать. Я хотел бы иметь возможность сделать что-то вроде:

class ... extends Controller {
    function showAction(Request $request,$id) {
        ...
        $voter=new Voter('myCOntentType',$id,$userid);

        ...
        return $this->render('...', array('voter'=>$voter->getVoter(),...))
    }
}

getVoter () создаст вид избирателя.

  • но я точно знаю, как начать. Я попытался вызвать другой контроллер таким образом, но не могу создать форму избирателя.

  • Он работал с $voter=$this->forward('VoterbundleNewAction', array('id=>$id,'user'=>$user)->getContent();
    Но я не об этом думал.

Я думаю, что у меня неправильный подход, и мне, возможно, придется сделать это как услугу. Я не могу найти свой путь вокруг.

1 Ответ

2 голосов
/ 13 января 2012

Вы можете использовать include или render в вашем шаблоне ветки, чтобы получить вывод других шаблонов. Таким образом, вы можете создать шаблон (скажем, voter.html.twig), который содержит HTML для вашей системы голосования, и в Twig, в любом месте, где вам нужен избиратель, вы можете использовать:

{% include "AcmeVoterBundle:Voter:voter.html.twig" %}

или

{% render "AcmeVoterBundle:Voter:voter" with {"item": item} %}

В первом примере вы просто включаете другой шаблон (см. Также: http://symfony.com/doc/current/book/templating.html#including-other-templates),, в последнем случае вы фактически выполняете другой метод действия контроллера, и результат этого выводится в ваш текущий шаблон (см. Также : http://symfony.com/doc/current/book/templating.html#embedding-controllers)

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