2016-12-07 2 views
0

Я использую тип намека php7. Так что я следующий кодОшибка типа: возвращаемое значение должно быть экземпляром, null null

class Uni 
{ 
/** 
    * @var Student 
    * 
    * @ORM\ManyToOne(targetEntity="AppBundle\Entity\Student") 
    * @ORM\JoinColumn(nullable=false) 
    */ 
    private $student; 

    function _construct(){ 
     $this->student= new Student(); 
    } 

    /** 
    * Set student 
    * 
    * @param \AppBundle\Entity\Student $student 
    * 
    * @return Uni 
    */ 
    public function setStudent (Student $student): Uni 
    { 
     $this->student= $student; 

     return $this; 
    } 

    /** 
    * Get student 
    * 
    * @return \AppBundle\Entity\Student 
    */ 
    public function getStudent(): Student 
    { 
     return $this->student; 
    } 

} 

теперь, когда я пытаюсь загрузить новую форму для Uni, я получаю эту ошибку

Type error: Return value of AppBundle\Entity\Uni::getStudent() must be an instance of AppBundle\Entity\Student, null returned 

Как я могу избавиться от этой ошибки? Я нашел решение с нулевым значением и требует php 7.1. Но сейчас я должен придерживаться php 7.0. Итак, как я могу это решить?

ответ

4

У вас есть опечатка в вашем конструкторе, два символа подчеркивания должны быть перед construct.

function __construct() { 
    $this->student = new Student(); 
} 

Из-за этого, $student был null, когда был создан ваш объект.

Смежные вопросы