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

时间:2015-11-05 14:38:22

标签: symfony error-handling case classname mismatch

我使用Symfony2开发了一个网站,我意外删除了它。不幸的是,由于恢复软件,我已成功从计算机的硬盘恢复其源文件夹。我还恢复了数据库。当测试网站是否像以前一样正常工作时,我发现存在一个问题:在包含Fullcalendar日历的页面中,当点击日历中的任何位置时,必须出现一个弹出窗口,其中包含添加新活动。但是,我在计算机屏幕上看到的是一个包含此错误消息的弹出窗口:

加载和声明的类名之间的大小写不匹配:Ikproj \ HomeBundle \ Form \ eventstype vs Ikproj \ HomeBundle \ Form \ eventsType

然后,我检查了与添加新事件的形式相关的文件名。我发现它是 eventsType.php (不是" eventstype.php")。这是这样一个文件包含的代码:

    <?php

namespace Ikproj\HomeBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;


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' => 'Ikproj\HomeBundle\Entity\events'
        ));
    }

    /**
     * @return string
     */
    public function getName()
    {
        return 'ikproj_homebundle_events';
    }
}

从上面的代码可以看出,类的名称是 eventsType (不是&#34; eventstype&#34;)。 实际上,我的网站上的所有内容在被意外删除之前都运行良好。所以,我的问题是:

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

1 个答案:

答案 0 :(得分:1)

您可以通过在Controller中更改表单的调用来解决此问题,因为您可能正在使用它:

use Ikproj\HomeBundle\Form\eventstype;

而不是:

use Ikproj\HomeBundle\Form\eventsType;