【发布时间】:2014-03-04 09:53:26
【问题描述】:
我在 Symfony2 中为时事通讯表单安装了一个电子邮件验证器。在本地一切正常,但如果我将整个文件夹上传到我的虚拟主机,我会收到以下错误消息:
Fatal error: Class 'Symfony\Component\Validator\Constraints\email' not found in /home/donacico/public_html/spendu/donaci14/vendor/symfony/symfony/src/Symfony/Component/Validator/Mapping/Loader/AbstractLoader.php on line 64
我的验证 yml 如下所示:
# src/Dbe/DonaciBundle/Resources/config/validation.yml
Dbe\DonaciBundle\Entity\Newsletter:
properties:
email:
- email:
message: The email "{{ value }}" is not a valid email.
checkMX: true
Dbe\DonaciBundle\Entity\Contact:
properties:
email:
- email:
message: The email "{{ value }}" is not a valid email.
checkMX: true
这里是创建控制器的动作:
/**
* Creates a new Newsletter entity.
*
*/
public function createAction(Request $request) {
$entity = new Newsletter();
$form = $this -> createCreateForm($entity);
$form -> handleRequest($request);
if ($form -> isValid()) {
$em = $this -> getDoctrine() -> getManager();
$em -> persist($entity);
$em -> flush();
$this -> get('session') -> getFlashBag() -> add('newsletterSubscribed', 'Thank you for subscribing!');
}
return $this -> render('DbeDonaciBundle:UnderConstruction:index.html.twig', array('entity' => $entity, 'form' => $form -> createView(), ));
}
我还在 config.yml 文件中启用了验证:
framework:
validation: { enable_annotations: true }
知道什么会导致这个错误吗?
【问题讨论】:
-
请记住,尽管 Windows 的路径和 PHP 标识符(类名)不区分大小写,但 Linux 文件路径却不是。将
email更改为Email应该没问题。
标签: validation symfony constraints