gpt4 book ai didi

php - 如何定义默认值主义实体?

转载 作者:行者123 更新时间:2023-11-30 00:02:55 25 4
gpt4 key购买 nike

我有两个表:计划标记

对于这两个表

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

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

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

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

正如您可以从表 marks 中的这段代码中了解到的,我有字段 plan_id (存储计划 ID)。此字段不是强制性的,默认情况下我希望 plan_id = 0,但我可以做到。如果我在类 Mark 中设置字段 $plan = 0,则会出现预期对象的错误。但是如果我设置 plan = 0,它会将 NULL 保存在数据库中,我根本不需要它。

也许有人有一些建议?

最佳答案

使用lifecycle callbacks在标记->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;
}
}

但我认为 Doctrine 会在尝试查找 id = 0 的计划时返回错误。

关于php - 如何定义默认值主义实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24869505/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com