Symfony &引用;make:实体——重新生成;创建不正确的(?)函数
我目前正在学习Symfony教程,我已经进入了双向关系部分(如果我使用的术语是错误的,很抱歉,我不是以英语为母语的人)。我的模型是基于一个广告(一对多)的,它显示了一系列针对该广告的应用程序(多对一)。因此,应用程序必须链接到广告,因此Symfony &引用;make:实体——重新生成;创建不正确的(?)函数,symfony,orm,doctrine-orm,doctrine,symfony4,Symfony,Orm,Doctrine Orm,Doctrine,Symfony4,我目前正在学习Symfony教程,我已经进入了双向关系部分(如果我使用的术语是错误的,很抱歉,我不是以英语为母语的人)。我的模型是基于一个广告(一对多)的,它显示了一系列针对该广告的应用程序(多对一)。因此,应用程序必须链接到广告,因此可空false: class Application { /** * @ORM\ManyToOne(targetEntity="App\Entity\Advert", inversedBy="applications") * @ORM\
可空false
:
class Application
{
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Advert", inversedBy="applications")
* @ORM\JoinColumn(nullable=false)
*/
private $advert;
//
}
我在我的广告类中添加了一个$applications
属性:
class Advert
{
/**
* @ORM\OneToMany(targetEntity="App\Entity\Application", mappedBy="advert")
*/
private $applications;
//
}
但是当我使用php-bin/console-make:entity--regenate
来获得removeApplication()
函数时,我得到的代码如下:
public function removeApplication(Application $application): self
{
if ($this->applications->contains($application)) {
$this->applications->removeElement($application);
// set the owning side to null (unless already changed)
if ($application->getAdvert() === $this) {
$application->setAdvert(null);
}
}
return $this;
}
函数将应用程序的$advert
设置为null,而此属性显式设置为nullable=false
。我注意到了这种不一致性,因为我使用的是Symfony 4,而下面的教程是基于旧版本的,因此教程中生成的函数要简单得多,并且没有处理$advert
属性
你知道为什么会发生这种情况,以及它是否会在我的项目中导致错误吗?如果您需要更多的代码来理解问题,请告诉我。这在我看来确实是一个bug,它们可能无法处理生成器内部的可为null的情况 也许试着在关系的广告方面,会很有趣,然后会发生什么:
class Advert
{
/**
* @ORM\OneToMany(targetEntity="App\Entity\Application", mappedBy="advert", orphanRemoval=true)
*/
private $applications;
}
在我看来,这真的像一个bug,它们可能不处理生成器内部的可为null的情况 也许试着在关系的广告方面,会很有趣,然后会发生什么:
class Advert
{
/**
* @ORM\OneToMany(targetEntity="App\Entity\Application", mappedBy="advert", orphanRemoval=true)
*/
private $applications;
}
在我看来,它像一只虫子。你应该在github上创建一个问题:我觉得它像个bug。您应该在github上创建一个问题:当OrphanRemove设置为true时重新生成将输出完全相同的removeApplication()functionOk然后他们在创建生成器时真的没有考虑到这种情况。我仍在等待我在Github上创建的问题的答案,但是的,这可能就是将孤儿移除设置为true时生成的结果,输出完全相同的removeApplication()functionOk然后他们在创建生成器时真的没有考虑到这个问题。我仍然在等待我在Github上创建的问题的答案,但是的,这可能就是发生的事情