Веточка в syfmony2 возвращается пустой - PullRequest
0 голосов
/ 04 октября 2011

Моя проблема в том, что мой контроллер успешно завершает работу, но ветка / представление затем отображает пробел. Запрос не возвращает html.

Мой контроллер заканчивается нормально:

    $logger->info('Now sending song [' . $song->getId() . ' to twig');
    return array('song'=>$song);
}

Поскольку у меня нет ошибок, трудно определить проблему. Все, что у меня есть, это dev.log от monolog:

[2011-10-04 07:41:03] app.INFO: Now sending song [672] to twig [] []
[2011-10-04 07:41:03] event.DEBUG: Notified event "kernel.view" to listener "Sensio\Bundle\FrameworkExtraBundle\EventListener\TemplateListener::onKernelView". [] []
[2011-10-04 07:41:03] event.DEBUG: Listener "Sensio\Bundle\FrameworkExtraBundle\EventListener\TemplateListener::onKernelView" stopped propagation of the event "kernel.view". [] []
[2011-10-04 07:41:03] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\ResponseListener::onKernelResponse". [] []
[2011-10-04 07:41:03] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Bundle\SecurityBundle\EventListener\ResponseListener::onKernelResponse". [] []
[2011-10-04 07:41:03] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Bridge\Monolog\Handler\FirePHPHandler::onKernelResponse". [] []
[2011-10-04 07:41:03] event.DEBUG: Notified event "kernel.response" to listener "Sensio\Bundle\FrameworkExtraBundle\EventListener\CacheListener::onKernelResponse". [] []
[2011-10-04 07:41:03] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\ProfilerListener::onKernelResponse". [] []
[2011-10-04 07:41:03] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Bundle\WebProfilerBundle\EventListener\WebDebugToolbarListener::onKernelResponse". [] []

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

EDIT: Если я поменяю свой контроллер: - удалил @Template () - конец выглядит так:

$logger->info('Now sending song [' . $song->getId() . '] to twig');
$content = $this->renderView('MyPadBundle:Play:index.html.twig', array('song'=>$song));
$logger->info('content rendered');
return new Response($content);

Тогда мой dev.log:

[2011-10-04 09:42:52] app.INFO: Now sending song [189] to twig [] []
[2011-10-04 09:42:53] app.INFO: content rendered [] []
[2011-10-04 09:42:53] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\ResponseListener::onKernelResponse". [] []
[2011-10-04 09:42:53] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Bundle\SecurityBundle\EventListener\ResponseListener::onKernelResponse". [] []
[2011-10-04 09:42:53] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Bridge\Monolog\Handler\FirePHPHandler::onKernelResponse". [] []
[2011-10-04 09:42:53] event.DEBUG: Notified event "kernel.response" to listener "Sensio\Bundle\FrameworkExtraBundle\EventListener\CacheListener::onKernelResponse". [] []
[2011-10-04 09:42:53] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\ProfilerListener::onKernelResponse". [] []
[2011-10-04 09:42:53] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Bundle\WebProfilerBundle\EventListener\WebDebugToolbarListener::onKernelResponse". [] []

Как будто ядро ​​просто не может вернуть ответ?

1 Ответ

1 голос
/ 04 октября 2011

Я не знаю, что не так, но это все-таки решает:

$logger->info('Now sending song [' . $song->getId() . '] to twig');
$em->clear();
return array('song'=>$song);

Должен был знать, что это будет доктрина с отсутствием сообщений об ошибках. В любом случае, в таблице всего 1000 строк, поэтому не уверен, насколько она может быть слишком большой для обработки веток, тем более что я пропускаю только одну строку / сущность.

Должен признать, что я разочарован доктриной; или, может быть, проблема в плохом дизайне шаблонов Symfony?

...