2015-07-13 44 views
4

中調用我在編碼時遇到了問題。當我送你的形式,並保存到數據庫中,類似這樣的消息:Symfony2可捕捉的致命錯誤:參數1傳遞給...必須是...整數的一個實例,在

Catchable fatal error: Argument 1 passed to ITTBundle\Entity\Student::setFormClass() must be an instance of ITTBundle\Entity\FormClass, integer given, called in C:\Users\Rivan\Documents\DigitalSchoolBase\Symfony2\src\ITTBundle\Controller\ConfigureController.php on line 601 and defined in C:\Users\Rivan\Documents\DigitalSchoolBase\Symfony2\src\ITTBundle\Entity\Student.php on line 901 

這裏是我的代碼:

$findclass = $this->getDoctrine() 
    ->getRepository('ITTBundle:FormClass') 
    ->findOneBy(array('class_level' => $classlevel->getId(), 'letter' => $letter, 'class_major' => $classmajor->getId())); 

    //print_r($findclass->getId()); exit; 
    if(empty($error_message))  
    { 
     If ($findclass) 
     { 
     $em = $this->getDoctrine()->getManager(); 
     $students->setFormClass($findclass->getId()); 
     $em->persist($students); 
     $em->flush(); 
     } 

    } 

我不知道與此問題。我的其他編碼,這種方式工作正常,但我很困惑,當這種方法不能用於我的編碼。

回答

3

從你提供的示例中,我想這是線601,這是觸發致命錯誤:

$students->setFormClass($findclass->getId()); 

我假定方法調用\ITTBundle\Entity\Student::setFormClass()需要\ITTBundle\Entity\FormClass類型的對象。你從數據庫中返回一個實體,但是然後你,但是你明確地傳遞了對象的id--這是一個整數 - 而不是FormClass對象本身。

試試這個:

$students->setFormClass($findclass); 

我們只能肯定地告訴你向我們展示的\ITTBundle\Entity\Student::setFormClass()方法簽名,但那是我的半教育的假設。給出的方法調用本身是拋出一個錯誤意料不到的參數類型,我認爲方法參數的類型,所以我的猜測是,它可能是這樣的:

public function setFormClass(\ITTBundle\Entity\FormClass $formClass) 
{ 
    $this->formClass = $formClass; 
} 

希望這有助於:)

+0

尼斯,有用。感謝您的幫助 。 –

+0

沒問題:)高興地幫忙。不知道誰低估了你,似乎有點不合理,因爲你的問題對我來說似乎很好。 –

+0

對不起,我的英語不太好。 –

相關問題