2014-03-04 32 views
0

我在Symfony2中安裝了一個電子郵件驗證器,用於通訊表格。當地一切正常,但如果我上傳整個文件夾到我的虛擬主機,我收到以下錯誤信息: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 

我的驗證陽明看起來是這樣的:

# 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 } 

任何想法可能會導致此錯誤?

+1

請記住,雖然Windows的路徑和PHP標識符(類名)是區分insensitivie,Linux的文件路徑不。將'email'改爲'Email',你應該沒問題。 – Crozin

回答

3

如果你在linux系統上工作,它區分大小寫。

'Symfony\Component\Validator\Constraints\email' 

'Symfony\Component\Validator\Constraints\Email' 

否則自動加載找不到文件和類。

+0

我是否需要一個稱爲電子郵件的實體?我需要在哪裏放置使用聲明? – joelschmid

+0

我不是在那裏實現你的約束;)有一些可能性來做到這一點。搜索這個限制並改變它。 – Stony

+0

我在時事通訊控制器中實現了它(使用Symfony \ Component \ Validator \ Constraints \ email;),但如果我將它寫入區分大小寫,它沒有任何區別。仍然是同樣的錯誤,我想我有一個理解問題... 如果你看我的代碼,有什麼缺失? – joelschmid

0

這確實是一個區分大小寫的錯誤情況,但我糾正了錯誤的一個。

的src/DbeDonaciBundle /資源/配置/ validation.yml

Dbe\DonaciBundle\Entity\Newsletter: 
    properties: 
     email: 
      - Email : 
       message: The email "{{ value }}" is not a valid email. 
       checkMX: true