我有兩個表新聞和news_category。爲此,我使用symfony命令'doctrine:mapping:convert'創建了兩個映射類。這兩個文件如下。Symfony2自動生成實體錯誤。
news.orm.yml。
News: type: entity table: news fields: newsId: id: true type: integer unsigned: false nullable: false column: news_id generator: strategy: IDENTITY newsTitle: type: string length: 255 fixed: false nullable: false column: news_title newsDescription: type: text nullable: false column: news_description newsStatus: type: string length: 255 fixed: false nullable: false column: news_status createdAt: type: date nullable: false column: created_at manyToOne: category: targetEntity: NewsCategory cascade: { } mappedBy: null inversedBy: null joinColumns: category_id: referencedColumnName: category_id orphanRemoval: false lifecycleCallbacks: { }
2)。 NewCategory.orm.yml
NewsCategory:
type: entity
table: news_category
fields:
categoryId:
id: true
type: integer
unsigned: false
nullable: false
column: category_id
generator:
strategy: IDENTITY
categoryTitle:
type: string
length: 255
fixed: false
nullable: false
column: category_title
categoryDescription:
type: text
nullable: false
column: category_description
lifecycleCallbacks: { }
後,我已經使用了另一個symfony的命令「的信條:映射:導入」使用這個我再次生成兩個文件中的實體目錄News.php和NewsCategory.php
這是如下。
1)news.php
<?php
namespace Admin\NewsBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* News
*
* @ORM\Table(name="news")
* @ORM\Entity
*/
class News
{
/**
* @var integer
*
* @ORM\Column(name="news_id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $newsId;
/**
* @var string
*
* @ORM\Column(name="news_title", type="string", length=255, nullable=false)
*/
private $newsTitle;
/**
* @var string
*
* @ORM\Column(name="news_description", type="text", nullable=false)
*/
private $newsDescription;
/**
* @var string
*
* @ORM\Column(name="news_status", type="string", length=255, nullable=false)
*/
private $newsStatus;
/**
* @var \DateTime
*
* @ORM\Column(name="created_at", type="date", nullable=false)
*/
private $createdAt;
/**
* @var \NewsCategory
*
* @ORM\ManyToOne(targetEntity="NewsCategory")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="category_id", referencedColumnName="category_id")
* })
*/
private $category;
}
和2)NewCategory.php
namespace Admin\NewsBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* NewsCategory
*
* @ORM\Table(name="news_category")
* @ORM\Entity
*/
class NewsCategory
{
/**
* @var integer
*
* @ORM\Column(name="category_id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $categoryId;
/**
* @var string
*
* @ORM\Column(name="category_title", type="string", length=255, nullable=false)
*/
private $categoryTitle;
/**
* @var string
*
* @ORM\Column(name="category_description", type="text", nullable=false)
*/
private $categoryDescription;
}
問題是現在當我創建使用的實體 「學說:生成:實體」 它給了我以下錯誤。
D:\wamp\www\Symfony>php app/console doctrine:generate:entities AdminNewsBundle
Generating entities for bundle "AdminNewsBundle"
[Doctrine\Common\Persistence\Mapping\MappingException]
Invalid mapping file 'Admin.NewsBundle.Entity.News.orm.yml' for class 'Admi
n\NewsBundle\Entity\News'.
doctrine:generate:entities [--path="..."] [--no-backup] name
遺憾的英文不好,請幫我從這個問題來,因爲我是新來的Symfony2
如果您使用'yml'映射,則不需要生成'Annotations'。嘗試刪除您的實體並再次運行該命令。另外,請確保您的YML文件正確縮進。你提供的是不正確的。 *(請參閱'news.orm.yml'中的manyToOne)* – Touki 2013-03-22 09:26:03
是的,我的yml文件正確縮進becoz它生成dinhem我刪除了我的實體,但仍然沒有創建實體。感謝您的重播。 – 2013-03-22 09:55:53