1
我已经安装了ADESIGN日历捆绑并遵循相同的设置记录在这里:https://github.com/adesigns/calendar-bundleSymfony2的事件监听器不叫 - ADESIGN日历捆绑
我的问题是,在我试图显示日历模板它正在生成一个名为#calendar-holder的空白div - 里面没有日历。
我没有得到一个控制台的错误,但在Symfony的探查我发现这一点:
不调用监听
事件:calendar.load_events
监听器:CalendarEventListener: :loadEvents
我对Symfony相当陌生,所以我不太清楚这意味着什么 - 我想我已经正确地注册了我的事件侦听器。
任何意见将不胜感激!
感谢, 汤姆
我的代码如下:
Services.yml
kernel.listener.calendar_listener:
class: FrontendBundle\Listener\CalendarEventListener
tags:
- { name: kernel.event_listener, event: calendar.load_events, method: loadEvents }
arguments: [@doctrine.orm.entity_manager, @service_container]
事件监听器类 - CalendarEventListener.php
(我知道这上课会被打电话,因为我可以从wi回应薄呢 - 里面的类,但下面的方法不)
namespace FrontendBundle\Listener;
use ADesigns\CalendarBundle\Event\CalendarEvent;
use ADesigns\CalendarBundle\Entity\EventEntity;
use Doctrine\ORM\EntityManager;
class CalendarEventListener
{
private $entityManager;
public function __construct(EntityManager $entityManager)
{
$this->entityManager = $entityManager;
}
public function loadEvents(CalendarEvent $calendarEvent)
{
/* Test data */
$beginDatetime = new \DateTime('2012-01-01 00:00:00');
$endDatetime = new \DateTime('2012-05-01 00:00:00');
$eventTitle = "Test Title 1";
$eventEntity = new EventEntity($eventTitle, $beginDatetime, null, true);
$calendarEvent->addEvent($eventEntity);
}
}
你可以分享你的整个服务类'CalendarEventListener.php' – Baig
喜, 感谢回复!我已经更新了原始代码以显示完整的课程。 –
出于好奇心,不应该让你的监听器实现'EventSubscriberInterface',那么你需要在你的事件监听器'getSubscribedEvents()'中创建一个函数,然后告诉'kernel.request'运行什么函数 – Baig