如何在Symfony2上处理此错误消息:加载的类名和声明的类名之间的大小写不匹配



我使用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")。事实上,在我的网站被意外删除之前,它一直运行得很好。所以,我的问题是:

  1. 为什么我会收到错误消息
  2. 我该如何解决这个问题

您可以通过在控制器中更改表单的调用来解决此问题,因为您可能正在使用以下内容:

use IkprojHomeBundleFormeventstype;

取而代之的是:

use IkprojHomeBundleFormeventsType;

最新更新