错误开始保存操作

Posted

技术标签:

【中文标题】错误开始保存操作【英文标题】: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 行

【问题讨论】:

【参考方案1】:

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

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

您的代码必须如下所示:

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

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

【讨论】:

感谢它的工作......但我有另一个疑问是如何插入多个 DpfPostTemplateAssigned 与 DpfPostTemplate。请帮帮我... 如果您谈到多对多,请尝试阅读此内容:***.com/questions/12743630/… 或给我更具体的说明

以上是关于错误开始保存操作的主要内容,如果未能解决你的问题,请参考以下文章

在 CoreData 中保存操作值导致错误

保存到数据存储失败:操作无法完成。 (可可错误 133020。)

核心数据保存竞争条件错误

Android 10 API 29(操作系统错误:权限被拒绝,errno = 13)保存文件(颤振)

c#winform中datagridview中某单元格,开始输入内容,然后把输入清空再保存,提示错误。

如何将gcc的错误输出保存到文件