【问题标题】:Error gettins save operation错误开始保存操作
【发布时间】: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


    【解决方案1】:

    教义对你说,你必须做什么:

    在此未知实体上显式调用 EntityManager#persist() 或配置级联在映射中保持此关联,例如 @ManyToOne(..,cascade={"persist"})

    您的代码必须如下所示:

        /**
         * @ManyToOne(targetEntity="DpfPostTemplate", inversedBy="assignedProperties", cascade={"persist", "remove"})
         */
        protected $assignedProperty;
    

    请阅读本文以获取更多信息:Doctrine Docs

    【讨论】:

    • 感谢它的工作......但我有另一个疑问是如何插入多个 DpfPostTemplateAssigned 与 DpfPostTemplate。请帮帮我...
    • 如果您谈到多对多,请尝试阅读此内容:stackoverflow.com/questions/12743630/… 或给我更具体的说明
    猜你喜欢
    • 1970-01-01
    • 2014-07-12
    • 2021-02-13
    • 2017-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多