类型错误:返回值必须是一个实例,返回的null



我正在使用php7的类型提示。所以我有以下代码

class Uni
{
 /**
     * @var Student
     *
     * @ORMManyToOne(targetEntity="AppBundleEntityStudent")
     * @ORMJoinColumn(nullable=false)
     */
    private $student;
    function _construct(){
        $this->student= new Student();
    }
    /**
     * Set student
     *
     * @param AppBundleEntityStudent $student
     *
     * @return Uni
     */
    public function setStudent (Student $student): Uni
    {
        $this->student= $student;
        return $this;
    }
    /**
     * Get student
     *
     * @return AppBundleEntityStudent
     */
    public function getStudent(): Student 
    {
        return $this->student;
    }
}

现在,当我尝试为Uni加载新表单时,我会得到此错误

Type error: Return value of AppBundleEntityUni::getStudent() must be an instance of AppBundleEntityStudent, null returned 

如何摆脱此错误?我找到了一个无效的解决方案,需要PHP 7.1。但是现在我必须坚持使用PHP 7.0。那么我该如何解决?

您的构造函数中有一个错字,必须在construct之前出现两个下划线。

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

因此,创建对象时$studentnull

最新更新