我在一个deadend中,似乎无法摆脱这个看似简单的问题。
我正在使用Symfony2并尝试从我使用generate:doctrine:entity
命令生成的实体创建数据库表。但是当我运行doctrine:schema:create
时,我总是得到一个"没有元数据类来处理"像Doctrine这样的信息无法找到我的实体。
我检查了数据库,命名空间和注释,尝试手动创建其他实体而不是使用generate:doctrine:entity
命令,但我总是得到相同的结果。
这是我的实体:
namespace Blogger\BlogBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="blog")
*/
class Blog
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="title", type="string", length=255)
*/
private $title;
/**
* @var string
*
* @ORM\Column(name="author", type="string", length=100)
*/
private $author;
/**
* @var string
*
* @ORM\Column(name="blog", type="text")
*/
private $blog;
/**
* @var string
*
* @ORM\Column(name="image", type="string", length=20)
*/
private $image;
/**
* @var string
*
* @ORM\Column(name="tags", type="text")
*/
private $tags;
/**
* @var \DateTime
*
* @ORM\Column(name="created", type="datetime")
*/
private $created;
/**
* @var \DateTime
*
* @ORM\Column(name="updated", type="datetime")
*/
private $updated;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set title
*
* @param string $title
*
* @return Blog
*/
public function setTitle($title)
{
$this->title = $title;
return $this;
}
/**
* Get title
*
* @return string
*/
public function getTitle()
{
return $this->title;
}
/**
* Set author
*
* @param string $author
*
* @return Blog
*/
public function setAuthor($author)
{
$this->author = $author;
return $this;
}
/**
* Get author
*
* @return string
*/
public function getAuthor()
{
return $this->author;
}
/**
* Set blog
*
* @param string $blog
*
* @return Blog
*/
public function setBlog($blog)
{
$this->blog = $blog;
return $this;
}
/**
* Get blog
*
* @return string
*/
public function getBlog()
{
return $this->blog;
}
/**
* Set image
*
* @param string $image
*
* @return Blog
*/
public function setImage($image)
{
$this->image = $image;
return $this;
}
/**
* Get image
*
* @return string
*/
public function getImage()
{
return $this->image;
}
/**
* Set tags
*
* @param string $tags
*
* @return Blog
*/
public function setTags($tags)
{
$this->tags = $tags;
return $this;
}
/**
* Get tags
*
* @return string
*/
public function getTags()
{
return $this->tags;
}
/**
* Set created
*
* @param \DateTime $created
*
* @return Blog
*/
public function setCreated($created)
{
$this->created = $created;
return $this;
}
/**
* Get created
*
* @return \DateTime
*/
public function getCreated()
{
return $this->created;
}
/**
* Set updated
*
* @param \DateTime $updated
*
* @return Blog
*/
public function setUpdated($updated)
{
$this->updated = $updated;
return $this;
}
/**
* Get updated
*
* @return \DateTime
*/
public function getUpdated()
{
return $this->updated;
}
}
我没有想法。我看到其他类似的问题,但没有一个可以帮助我。如果有人知道该怎么做,我会爱你的帮助;)
答案 0 :(得分:0)
当我将实体类放在名为Models
的目录中时,发生了一些奇怪的事情,所以我的命名空间是:
的appbundle \模型
但它不起作用。
所以我删除了该文件夹并创建另一个名为Entity
的文件夹,并且它有效。
因此,请尝试删除BlogBundle
并将Entity
文件夹放在Appbundle
文件夹
答案 1 :(得分:0)
大部分时间由于实体路径问题和缓存而出现此错误 首先运行命令
doctrine:cache:clear-metadata
然后尝试
doctrine:schema:create
答案 2 :(得分:0)
我遇到了同样的问题。尝试从命名空间中删除Blogger:
namespace BlogBundle\Entity;