我使用Symfony2开发了一个网站,但我不小心删除了它。不幸的是,多亏了一个恢复软件,我已经成功地从我电脑的硬盘上恢复了它的源文件夹。我还恢复了数据库。当测试网站是否像以前一样正常工作时,我发现有一个问题:在包含Fullcalendar日历的页面中,当点击日历中的任何位置时,必须显示一个弹出窗口,其中包含添加新事件的形式。但当我这样做的时候,我在电脑屏幕上看到的是一个弹出窗口,其中包含以下错误信息:
加载和声明的类名之间的大小写不匹配:Ikproj\HomeBundle\Form\eventstype vs Ikproj \HomeBundle \Form\eeventsType
然后,我签出了与添加新事件的形式相关的文件的名称。我发现它是eventsType.php(而不是"eventsType.php")
<?php
namespace IkprojHomeBundleForm;
use SymfonyComponentFormAbstractType;
use SymfonyComponentFormFormBuilderInterface;
use SymfonyComponentOptionsResolverOptionsResolverInterface;
class eventsType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('title','text')
->add('start','datetime',array(
'input' => 'datetime',
'format' => 'dd/MM/yyyy H:i',
'minutes' => array(0,30)))
->add('end','datetime',array(
'input' => 'datetime',
'format' => 'dd/MM/yyyy H:i',
'minutes' => array(0,30)))
->add('location','text')
->add('description','textarea', array('attr' => array('rows' => '5','cols' => '40')));
}
/**
* @param OptionsResolverInterface $resolver
*/
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'IkprojHomeBundleEntityevents'
));
}
/**
* @return string
*/
public function getName()
{
return 'ikproj_homebundle_events';
}
}
从上面的代码中可以注意到,类的名称是eventsType(而不是"eventsType")。事实上,在我的网站被意外删除之前,它一直运行得很好。所以,我的问题是:
- 为什么我会收到错误消息
- 我该如何解决这个问题
您可以通过在控制器中更改表单的调用来解决此问题,因为您可能正在使用以下内容:
use IkprojHomeBundleFormeventstype;
取而代之的是:
use IkprojHomeBundleFormeventsType;