【问题标题】:Symfony 2 - The annotation in property does not exist, or could not be auto-loadedSymfony 2 - 属性中的注释不存在,或无法自动加载
【发布时间】:2015-04-11 12:21:16
【问题描述】:

我想在 Symfony2 上生成我的数据库架构时遇到一个奇怪的问题,一个属性不被接受...

The annotation "@Doctrine\ORM\Mapping\ManyToOne" in property L3L2\EntraideBundle\Entity\RendezVous::$idDispoProf does not exist, or could not be auto-loaded.

更奇怪的是,它可以在 MacOS X 和 Windows(Vista 和 7)上运行。我试图让它在 Ubuntu Server VM 上运行。

这是我的实体代码:

<?php

namespace L3L2\EntraideBundle\Entity;

use L3L2\UserBundle\Entity\User;
use Doctrine\ORM\Mapping as ORM;

/**
 * RendezVous
 *
 * @ORM\Table()
 * @ORM\Entity(repositoryClass="L3L2\EntraideBundle\Entity\RendezVousRepository")
 */
class RendezVous
{
    /**
     * Constructor
     */
    public function __construct()
    {
        $this->vuEleve = "NON";
        $this->vuProf = "NON";
}

/**
 * @var integer
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;

/**
 * @var string
 *
 * @ORM\Column(name="lieu", type="string", length=255)
 */
private $lieu;

/**
 * @var string
 *
 * @ORM\Column(name="statut", type="string", length=255)
 */
private $statut;

/**
 * @var \DateTime
 *
 * @ORM\Column(name="date", type="date")
 */
private $date;

/**
 * @var \DateTime
 *
 * @ORM\Column(name="time", type="time")
 */
private $time;
/**
 * @var \DateTime
 *
 * @ORM\Column(name="datetimeDebut", type="datetime")
 */
private $datetimeDebut;


/**
 * @var \DateTime
 *
 * @ORM\Column(name="datetimeFin", type="datetime")
 */
private $datetimeFin;


//Création de OneToOne vers Evaluation
/**
* @ORM\OneToOne(targetEntity="L3L2\EntraideBundle\Entity\Evaluation", mappedBy="idRdvEval")
* @ORM\JoinColumn(name="id_eval", referencedColumnName="id")
*/
protected $evaluationRdv;



//PROBLEM HERE !!


// Création de ManytoOne vers Disponibilite   
/**    
* @ORM\ManytoOne(targetEntity="L3L2\EntraideBundle\Entity\Disponibilite")   
* @ORM\JoinColumn(name="id_dispo_prof", referencedColumnName="id", onDelete="SET NULL")    
*/     
protected $idDispoProf;





//Création de ManyToOne vers Cours
/**
* @ORM\ManyToOne(targetEntity="L3L2\EntraideBundle\Entity\Cours", inversedBy="rendezVousCours")
* @ORM\JoinColumn(name="id_cours_rdv", referencedColumnName="id")
*/
protected $idCoursRdv;

//Création de ManyToOne vers User 
/**
* @ORM\ManyToOne(targetEntity="L3L2\UserBundle\Entity\User", inversedBy="rendezVousEleve")
* @ORM\JoinColumn(name="id_eleve_rdv", referencedColumnName="id")
*/
protected $idEleveRdv;

/**
 * @var string
 *
 * @ORM\Column(name="vuEleve", type="string", length=255, nullable=true)
 */
private $vuEleve;

 /**
 * @var string
 *
 * @ORM\Column(name="vuProf", type="string", length=255, nullable=true)
 */
private $vuProf;

//Création de ManyToOne vers User 
/**
* @ORM\ManyToOne(targetEntity="L3L2\UserBundle\Entity\User")
* @ORM\JoinColumn(name="dernierModif", referencedColumnName="id")
*/
private $dernierModif;

/**
 * Get id
 *
 * @return integer 
 */
public function getId()
{
    return $this->id;
}

/**
 * Set lieu
 *
 * @param string $lieu
 * @return RendezVous
 */
public function setLieu($lieu)
{
    $this->lieu = $lieu;

    return $this;
}

/**
 * Get lieu
 *
 * @return string 
 */
public function getLieu()
{
    return $this->lieu;
}

/**
 * Set statut
 *
 * @param string $statut
 * @return RendezVous
 */
public function setStatut($statut)
{
    $this->statut = $statut;

    return $this;
}

/**
 * Get statut
 *
 * @return string 
 */
public function getStatut()
{
    return $this->statut;
}

/**
 * Set evaluationRdv
 *
 * @param \L3L2\EntraideBundle\Entity\Evaluation $evaluationRdv
 * @return RendezVous
 */
public function setEvaluationRdv(\L3L2\EntraideBundle\Entity\Evaluation $evaluationRdv = null)
{
    $this->evaluationRdv = $evaluationRdv;

    return $this;
}

/**
 * Get evaluationRdv
 *
 * @return \L3L2\EntraideBundle\Entity\Evaluation 
 */
public function getEvaluationRdv()
{
    return $this->evaluationRdv;
}


/**
 * Set idEleveRdv
 *
 * @param \L3L2\UserBundle\Entity\User $idEleveRdv
 * @return RendezVous
 */
public function setIdEleveRdv(\L3L2\UserBundle\Entity\User $idEleveRdv = null)
{
    return $this->idEleveRdv = $idEleveRdv;
}

/**
 * Get idEleveRdv
 *
 * @return \L3L2\UserBundle\Entity\User 
 */
public function getIdEleveRdv()
{
    return $this->idEleveRdv;
}

/**
 * Set idDispoProf
 *
 * @param \L3L2\EntraideBundle\Entity\Disponibilite $idDispoProf
 * @return RendezVous
 */
public function setIdDispoProf(\L3L2\EntraideBundle\Entity\Disponibilite $idDispoProf = null)
{
    return $this->idDispoProf = $idDispoProf;
}

/**
 * Get idDispoProf
 *
 * @return \L3L2\EntraideBundle\Entity\Disponibilite 
 */
public function getIdDispoProf()
{
    return $this->idDispoProf;
}

/**
 * Set idCoursRdv
 *
 * @param \L3L2\EntraideBundle\Entity\Cours $idCoursRdv
 * @return RendezVous
 */
public function setIdCoursRdv(\L3L2\EntraideBundle\Entity\Cours $idCoursRdv = null)
{
    return $this->idCoursRdv = $idCoursRdv;
}

/**
 * Get idCoursRdv
 *
 * @return \L3L2\EntraideBundle\Entity\Cours 
 */
public function getIdCoursRdv()
{
    return $this->idCoursRdv;
}

/**
 * Set date
 *
 * @param \DateTime $date
 * @return RendezVous
 */
public function setDate($date)
{
    $this->date = clone $date;

    return $this;
}

/**
 * Get date
 *
 * @return \DateTime 
 */
public function getDate()
{
    return clone $this->date;
}

/**
 * Set time
 *
 * @param \DateTime $time
 * @return RendezVous
 */
public function setTime($time)
{
    $this->time = clone $time;

    return $this;
}

/**
 * Get time
 *
 * @return \DateTime 
 */
public function getTime()
{
    return clone $this->time;
}

/**
 * Set vuEleve
 *
 * @param string $vuEleve
 * @return RendezVous
 */
public function setVuEleve($vuEleve)
{
    $this->vuEleve = $vuEleve;

    return $this;
}

/**
 * Get vuEleve
 *
 * @return string 
 */
public function getVuEleve()
{
    return $this->vuEleve;
}

/**
 * Set vuProf
 *
 * @param string $vuProf
 * @return RendezVous
 */
public function setVuProf($vuProf)
{
    $this->vuProf = $vuProf;

    return $this;
}

/**
 * Get vuProf
 *
 * @return string
 */
public function getVuProf()
{
    return $this->vuProf;
}

/**
 * Set datetimeDebut
 *
 * @param \DateTime $datetimeDebut
 * @return RendezVous
 */
public function setDatetimeDebut($datetimeDebut)
{
    $this->datetimeDebut = $datetimeDebut;

    return $this;
}

/**
 * Get datetimeDebut
 *
 * @return \DateTime 
 */
public function getDatetimeDebut()
{
    return $this->datetimeDebut;
}

/**
 * Set datetimeFin
 *
 * @param \DateTime $datetimeFin
 * @return RendezVous
 */
public function setDatetimeFin($datetimeFin)
{
    $this->datetimeFin = $datetimeFin;

    return $this;
}

/**
 * Get datetimeFin
 *
 * @return \DateTime 
 */
public function getDatetimeFin()
{
    return $this->datetimeFin;
}



/**
 * Set dernierModif
 *
 * @param \L3L2\UserBundle\Entity\User $dernierModif
 * @return RendezVous
 */
public function setDernierModif(\L3L2\UserBundle\Entity\User $dernierModif = null)
{
    $this->dernierModif = $dernierModif;

    return $this;
}

/**
 * Get dernierModif
 *
 * @return \L3L2\UserBundle\Entity\User 
 */
public function getDernierModif()
{
    return $this->dernierModif;
}
}

如果我在 $idDispoProf 之前删除 $idDispoProf 或注释,我可以 schema:update... 有什么想法吗?

【问题讨论】:

    标签: symfony doctrine-orm annotations


    【解决方案1】:

    您在此特定属性中用小写字母写了ManytoOne,而不是其余部分中的ManyToOne。 Autoloader 在 Windows 中工作可能是因为这个名为 ManyToOne.phpManytoOne.php 的系统文件是相同的 - Linux 区分大小写。

    你的解决方案:将ManytoOne更改为ManyToOne

    【讨论】:

    • 天哪,你的眼睛真好!非常感谢 !我认为 MacOS 的大小写也很合理..
    猜你喜欢
    • 2018-05-24
    • 2013-05-29
    • 2017-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多