普通网友 2014-07-21 16:01
浏览 15

如何定义默认值学说实体?

I have two tables: plans and marks.

For this two tables

<?php
/**
 * @Entity
 * @Table(name="marks")
 */
class Mark{

    /**
     * @ManyToOne(targetEntity="Plan", inversedBy="marks")
     * @JoinColumn(name="plan_id", referencedColumnName="id")
      **/
    protected $plan = null;
    ...
}

And

<?php
/**
 * @Entity
 * @Table(name="plans")
 */
class Plan{

     /**
     * @OneToMany(targetEntity="Mark", mappedBy="plan")
     */
     private $marks;
     ...
}

As you can understand from this code in table marks I have field plan_id (which store plan id). This field is not mandatory and I want by default that plan_id = 0, but I can do it. If I set field $plan in class Mark = 0, I have error that was expected object. But If I set plan = 0, it save NULL in the database, I don't want it at all.

Maybe somebody has some advices?

  • 写回答

1条回答 默认 最新

  • du0923 2014-07-21 16:18
    关注

    Use lifecycle callbacks on Mark->setPlan()

    /**
     * @Entity
     * @Table(name="marks")
     * @ORM\HasLifecycleCallbacks
     */
    class Mark{
    
        /**
         * @ManyToOne(targetEntity="Plan", inversedBy="marks")
         * @JoinColumn(name="plan_id", referencedColumnName="id")
         **/
        protected $plan = null;
    
       /**
        * @ORM\PrePersist
        * @ORM\PreUpdate
        */    
       public function setPlan(Plan $plan = null){
          if(is_null($var)){
            $this->plan = 0;
          }
       }
    

    But I think that Doctrine will return errors trying to find a plan with id = 0.

    评论

报告相同问题?

悬赏问题

  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 一直显示正在等待HID—ISP