如何在 Symfony2 上处理此错误消息:加载和声明的 class 名称之间大小写不匹配?
How to handle this error message on Symfony2: Case mismatch between loaded and declared class names?
我用Symfony2开发了一个网站,不小心删了。不幸的是,多亏了恢复软件,我已经成功地从我的电脑硬盘上恢复了它的源文件夹。我也恢复了数据库。在测试网站是否像以前一样正常工作时,我发现有一个问题:在包含 Fullcalendar 日历的页面中,当点击日历中的任意位置时,弹出窗口 window 必须显示包含添加新事件的形式。但是我在执行此操作时在计算机屏幕上看到的是一个包含以下错误消息的弹出窗口 window:
加载和声明的 class 名称大小写不匹配:Ikproj\HomeBundle\Form\eventstype 与 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';
}
}
您可以从上面的代码中注意到,class 的名称是 eventsType(而不是 "eventstype")。
实际上,我网站上的所有内容在被意外删除之前都运行良好。所以,我的问题是:
- 为什么我会收到该错误消息?
- 我该如何解决这个问题?
您可以通过更改控制器中表单的调用来解决这个问题,因为您可能正在使用这个:
use Ikproj\HomeBundle\Form\eventstype;
而不是这个:
use Ikproj\HomeBundle\Form\eventsType;
我用Symfony2开发了一个网站,不小心删了。不幸的是,多亏了恢复软件,我已经成功地从我的电脑硬盘上恢复了它的源文件夹。我也恢复了数据库。在测试网站是否像以前一样正常工作时,我发现有一个问题:在包含 Fullcalendar 日历的页面中,当点击日历中的任意位置时,弹出窗口 window 必须显示包含添加新事件的形式。但是我在执行此操作时在计算机屏幕上看到的是一个包含以下错误消息的弹出窗口 window:
加载和声明的 class 名称大小写不匹配:Ikproj\HomeBundle\Form\eventstype 与 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';
}
}
您可以从上面的代码中注意到,class 的名称是 eventsType(而不是 "eventstype")。 实际上,我网站上的所有内容在被意外删除之前都运行良好。所以,我的问题是:
- 为什么我会收到该错误消息?
- 我该如何解决这个问题?
您可以通过更改控制器中表单的调用来解决这个问题,因为您可能正在使用这个:
use Ikproj\HomeBundle\Form\eventstype;
而不是这个:
use Ikproj\HomeBundle\Form\eventsType;