【发布时间】:2013-11-15 07:07:56
【问题描述】:
当我试图通过这个插入数据时,我的代码有两个简单的类。我可以得到一些错误..
头等舱
/**
* @Entity @Table(name="dpf_post_template")
*/
class DpfPostTemplate
{
/**
* @Id @GeneratedValue @Column(type="integer")
* @var string
*/
private $id;
/**
* @Column(type="string")
* @var string
*/
private $NAME;
/**
* @Column(type="datetime")
*/
private $CDATE;
/**
* @Column(type="datetime")
*/
private $UDATE;
/**
* @Column(type="string")
* @var string
*/
private $CBY;
/**
* @Column(type="string")
* @var string
*/
private $UBY;
/**
* @Column(type="integer")
* @var string
*/
private $ISACTIVE;
/**
* @OneToMany(targetEntity="DpfPostTemplateAssigned", mappedBy="assignedProperty")
* @var asProp[]
*/
private $assignedProperties = null;
public function __construct(){
$this->assignedProp = new ArrayCollection();
}
public function assignedProp($prop)
{
$this->assignedProperties[] = $prop;
}
public function getId(){
return $this->id;
}
public function getName(){
return $this->NAME;
}
public function setName($name){
$this->NAME = $name;
}
public function setCDate(DateTime $date){
$this->CDATE = $date;
}
public function setUDate(DateTime $date){
$this->UDATE = $date;
}
public function setIsActive($act){
$this->ISACTIVE = $act;
}
public function setCBy($cby){
$this->CBY = $cby;
}
public function setUBy($uby){
$this->UBY = $uby;
}
}
二等
use Doctrine\Common\Collections\ArrayCollection;
/**
* @Entity @Table(name="dpf_post_template_assigned")
*/
class DpfPostTemplateAssigned
{
/**
* @Id @GeneratedValue @Column(type="integer")
* @var string
*/
private $id;
/**
* @Column(type="integer")
* @var string
*/
private $POSTID;
/**
* @Column(type="integer")
* @var string
*/
private $PROPID;
/**
* @Column(type="string")
* @var string
*/
private $TEMPLATE;
/**
* @Column(type="string")
* @var string
*/
private $NAME;
/**
* @Column(type="string")
* @var string
*/
private $SIZE;
/**
* @Column(type="integer")
* @var string
*/
private $ISACTIVE;
/**
* @ManyToOne(targetEntity="DpfPostTemplate", inversedBy="assignedProperties")
*/
protected $assignedProperty;
public function getId(){
return $this->id;
}
public function getName(){
return $this->NAME;
}
public function setName($name){
$this->NAME = $name;
}
public function setPost($post)
{
$post->assignedProp($this);
$this->assignedProperty = $post;
}
}
保存操作
$post = new DpfPostTemplate();
$post->setName("dinesh");
$post->setCDate(new DateTime("Now"));
$post->setUDate(new DateTime("Now"));
$post->setCBy("dinesh");
$post->setUBy("dinesh");
$post->setIsActive(1);
//$em->persist($post);
//$em->flush();
$prop = new DpfPostTemplateAssigned();
$prop->setName("dinesh");
$prop->setPost($post);
$em->persist($prop);
$em->flush();
运行此代码时,我遇到了这样的错误.....
致命错误:未捕获的异常 带有消息“新实体”的“Doctrine\ORM\ORMInvalidArgumentException” 通过关系发现 'DpfPostTemplateAssigned#assignedProperty' 未配置为 实体的级联持久化操作: DpfPostTemplate@00000000149c8a9f0000000036fa642b。要解决此问题: 在这个未知实体上显式调用 EntityManager#persist() 或配置级联在映射中保留此关联 例如@ManyToOne(..,cascade={"persist"})。如果你找不到 哪个实体导致问题实施 'DpfPostTemplate#__toString()' 来获得线索。在 C:\xampp\htdocs\dpf\vendor\doctrine\orm\lib\Doctrine\ORM\ORMInvalidArgumentException.php:91 堆栈跟踪:#0 C:\xampp\htdocs\dpf\vendor\doctrine\orm\lib\Doctrine\ORM\UnitOfWork.php(797): Doctrine\ORM\ORMInvalidArgumentException::newEntityFoundThroughRelationship(Array, 对象(DpfPostTemplate))#1 C:\xampp\htdocs\dpf\vendor\doctrine\orm\lib\Doctrine\ORM\UnitOfWork.php(679): Doctrine\ORM\UnitOfWork->computeAssociationChanges in C:\xampp\htdocs\dpf\vendor\doctrine\orm\lib\Doctrine\ORM\ORMInvalidArgumentException.php 在第 91 行
【问题讨论】:
标签: php orm doctrine-orm doctrine