जब मैं ./app/console doctrine:migrate:diff
करने की कोशिश मैं निम्नलिखित त्रुटि मिल रही है:समय त्रुटि targetEntity एक अलग बंडल
[Doctrine\ORM\Mapping\MappingException]
Class VNN\CoreBundle\Entity\Game is not a valid entity or mapped super class.
यहाँ लाइन है कि यह पैदा कर रहा है:
/**
* @ORM\ManyToOne(targetEntity="VNN\CoreBundle\Entity\Game")
यहाँ प्रासंगिक हिस्सा है मेरी कक्षा का:
<?php
namespace VNN\PressboxBundle\Entity;
use Gedmo\Mapping\Annotation as Gedmo;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\ORM\Query\Expr\OrderBy;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Component\Validator\Mapping\ClassMetadata;
use Symfony\Component\Validator\Constraints\NotBlank;
use Symfony\Component\Validator\Constraints\Type;
use VNN\CoreBundle\Entity\Game;
/**
* VNN\PressboxBundle\Entity\Event
*
* @ORM\Table(name="event")
* @ORM\Entity
*/
class Event
{
/**
* @var integer $id
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity="VNN\CoreBundle\Entity\Game")
* @ORM\JoinColumn(name="core_game_id", referencedColumnName="game_id")
**/
private $coreGame;
क्या मैं समझता हूँ कि यह कह रहा है नहीं है कि यह नहीं कर सकतेVNN\CoreBundle\Entity\Game
खोजें, बस Game
मान्य इकाई नहीं है। तो यहाँ Game.php
है:
<?php
namespace VNN\CoreBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* VNN\CoreBundle\Entity\Game
*
* @ORM\Table(name="games")
* @ORM\Entity
*/
class Game
{
/**
* @var integer $id
*
* @ORM\Column(name="game_id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var integer $homeSchoolId
*
* @ORM\Column(name="home_school_id", type="integer")
*/
private $homeSchoolId;
/**
* @var integer $awaySchoolId
*
* @ORM\Column(name="away_school_id", type="integer")
*/
private $awaySchoolId;
/**
* @ORM\ManyToOne(targetEntity="School")
* @ORM\JoinColumn(name="home_school_id", referencedColumnName="school_id")
**/
private $homeSchool;
/**
* @ORM\ManyToOne(targetEntity="School")
* @ORM\JoinColumn(name="away_school_id", referencedColumnName="school_id")
**/
private $awaySchool;
/**
* @ORM\ManyToOne(targetEntity="Sport")
* @ORM\JoinColumn(name="sport_id", referencedColumnName="sport_id")
**/
private $sport;
/**
* @var integer $datetime
*
* @ORM\Column(name="game_datetime")
*/
private $datetime;
/**
* @var integer $homeScore
*
* @ORM\Column(name="home_score", type="integer")
*/
private $homeScore;
/**
* @var integer $awayScore
*
* @ORM\Column(name="away_score", type="integer")
*/
private $awayScore;
public function getId()
{
return $this->id;
}
public function getHomeSchool()
{
if ($this->homeSchoolId > 0) {
return $this->homeSchool;
} else {
return FALSE;
}
}
public function getAwaySchool()
{
if ($this->awaySchoolId > 0) {
return $this->awaySchool;
} else {
return FALSE;
}
}
public function recordIsValid()
{
if (!($this->homeSchoolId > 0)) {
return FALSE;
}
if (!($this->awaySchoolId > 0)) {
return FALSE;
}
return TRUE;
}
public function getSport()
{
return $this->sport;
}
public function getHumanDatetime()
{
$date = new \DateTime($this->datetime);
return $date->format('F d, Y g:ia');
}
public function getDatetime()
{
$date = new \DateTime($this->datetime);
return $date->format('m/d/Y g:i:s a');
}
public function getOpposingSchoolWithRespectToSchoolName($schoolName)
{
if ($schoolName == $this->getHomeSchool()->getName()) {
return $this->getAwaySchool();
} else {
return $this->getHomeSchool();
}
}
public function getHomeScore()
{
return $this->homeScore;
}
public function getAwayScore()
{
return $this->awayScore;
}
}
Game
यह क्यों नहीं करना चाहते हैं?
अपडेट: जब मैंने एक और क्रॉस-बंडल इकाई के साथ एक ही काम करने की कोशिश की तो मुझे यह वही सही समस्या थी। मुझे this post मिला, लेकिन ऐड-ए-अग्रणी-स्लैश फ़िक्स ने मेरे लिए ऐसा नहीं किया जैसा कि स्पष्ट रूप से ओपी के लिए किया गया था।
क्या आपने "वीएनएन \ कोरबंडल \ Entity \ Game" के बजाय "\ VNN \ CoreBundle \ Entity \ Game" का उपयोग करने का प्रयास किया था? –
हाँ। यह पसंद नहीं आया, या तो। –
सिम्फनी और सिद्धांत का कौन सा संस्करण आप उपयोग कर रहे हैं? मेरे पास मेरी परियोजनाओं में से एक में एक ही सेटअप है, और यह वहां काम करता है:/लेकिन मैं आपसे सहमत हूं कि ऐसा लगता है कि गेम वैध नहीं है, हालांकि, सिद्धांत कोड को देखते समय, यह संदेश केवल तभी आना चाहिए जब कक्षा नहीं है एक सिद्धांत \ ORM \ Mapping \ Entity के रूप में एनोटेटेड, जो यह स्पष्ट रूप से है ... –