gpt4 book ai didi

php - 在 findBy 之后,Doctrine 重写了与急切获取值的关系

转载 作者:可可西里 更新时间:2023-10-31 23:35:53 26 4
gpt4 key购买 nike

我有一个简单的实体

/**
* @ORM\Entity(repositoryClass="...\Repository\UserTestRepository")
* @ORM\Table(name="users", uniqueConstraints={
* @ORM\UniqueConstraint(name="U_email", columns={"email"})
* })
* @UniqueEntity("email", message="Email is already used!")
*/
class UserTest
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;

/**
* @var string
* @ORM\Column(type="string", length=180)
* @Assert\NotBlank()
* @Assert\Email()
*/
protected $email;

/**
* @var string
* @ORM\Column(type="string", length=255, nullable=true)
* @Assert\NotBlank()
*/
protected $jobTitle;

/**
* @var Company
* @ORM\ManyToOne(targetEntity="...\Entity\Company", fetch="EAGER")
* @ORM\JoinColumn(name="company_id", referencedColumnName="id", nullable=true, onDelete="SET NULL")
*/
private $company;

public function getId()
{
return $this->id;
}

public function getEmail()
{
return $this->email;
}

public function setEmail($email)
{
$this->email = $email;

return $this;
}

public function getJobTitle()
{
return $this->jobTitle;
}

public function setJobTitle($jobTitle)
{
$this->jobTitle = $jobTitle;
return $this;
}

public function setCompany(...\Entity\Company $company = null)
{
$this->company = $company;

return $this;
}

public function getCompany()
{
return $this->company;
}
}

和 Controller

$repo = $this->getDoctrine()->getRepository('..\Entity\UserTest');

$user = $repo->find(519);
dump($user);

$user->setJobTitle('new value');
$user->setCompany(null);
dump($user);

$repo->findBy(['email' => 'test@test.com']);
dump($user);

1-st dump, original

2-nd dump, after changes without flush

3-rd dump, after findBy, jobTitle - with new value, company - original value, changes were lost

第一次转储,原始

第二次转储,在没有刷新的情况下发生变化

第 3 次转储,在 findBy 之后,jobTitle - 具有新值,company - 原始值,更改丢失

这是正常的 Doctrine 行为还是错误?我使用 doctrine/orm v2.5.11。它在新版本中得到修复了吗?

任何帮助,请

最佳答案

通过存储库的 findBy() 查找未刷新的实体时,这是 Doctrine 的正常行为。请引用https://github.com/doctrine/orm/issues/5092获取更多信息。

关于php - 在 findBy 之后,Doctrine 重写了与急切获取值的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55872020/

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