symfony - 如何在Symfony2上处理此错误消息: Case mismatch between loaded and declared class names?

标签 symfony error-handling case classname mismatch

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

装入的类名和声明的类名之间的大小写不匹配:Ikproj \ HomeBundle \ Form \ eventstype与Ikproj \ HomeBundle \ Form \ eventsType

然后,我 checkout 了与添加新事件的形式相关的文件名。而且我发现它是 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 (不是“eventstype”)。
实际上,在我的网站上的所有内容在被意外删除之前都运行良好。因此,我的问题是:
  • 为什么会收到该错误消息?
  • 我该如何解决该问题?
  • 最佳答案

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

    use Ikproj\HomeBundle\Form\eventstype;
    

    代替这个:
    use Ikproj\HomeBundle\Form\eventsType;
    

    关于symfony - 如何在Symfony2上处理此错误消息: Case mismatch between loaded and declared class names?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33547345/

    相关文章:

    mysql - 动态字段(求和情况)

    MySQL存储过程问题。抛出警告。想不通为什么?

    android - 使用 Roboguice 在 Android 应用程序中进行全局错误处理

    sql - 在此查询中放置 CASE WHEN 列 IS NULL 的位置

    forms - symfony2 : null date rendering

    javascript - Symfony 3 Form Ajax Post请求数据为空

    windows - Symfony2 : automatically logging in users from their Windows session

    php - 如何为我配置的货币使用 Sylius 货币导入器?

    angular - Angular2网站显示错误后的奇怪行为

    oracle - LISTAGG 被评估并在无法访问的 case 语句中失败