Symfony 4 和 Doctrine - 为什么 Doctirne 生成一个 `$__EXTRA_LINE` 变量的多个声明?
Symfony 4 and Doctrine - Why is Doctirne generating multiple declarations of an `$__EXTRA_LINE` variable?
我正在使用 Doctrine CLI 在已经存在的实体上生成一个 ManyToOne
关联。
生成的代码在变量 $__EXTRA_LINE
的多个声明中丢失,甚至没有从 class 使用 $this->
调用。
这显然是在调用 php bin/console make:migration
或 运行 脚本时由于多重声明而导致的错误,以及由于函数中未定义的变量而导致的错误(未使用 $this->
在函数体中)。
生成的代码如下:
private $__EXTRA__LINE; // 1
/**
* @return Collection|JobInvoice[]
*/
public function getJobInvoices(): Collection
{
return $this->job_invoices;
}
private $__EXTRA__LINE; // 2
public function addJobInvoice(JobInvoice $jobInvoice): self
{
if (!$this->job_invoices->contains($jobInvoice)) {
$this->job_invoices[] = $jobInvoice;
$jobInvoice->setInvoice($this);
}
$__EXTRA__LINE; // no '$this->'
return $this;
}
private $__EXTRA__LINE; // 3
public function removeJobInvoice(JobInvoice $jobInvoice): self
{
if ($this->job_invoices->contains($jobInvoice)) {
$this->job_invoices->removeElement($jobInvoice);
// set the owning side to null (unless already changed)
if ($jobInvoice->getInvoice() === $this) {
$jobInvoice->setInvoice(null);
}
}
$__EXTRA__LINE; // no '$this->'
return $this;
}
什么可能导致此错误或不是错误,它的发生是否出于对此 ManyToOne
工作很重要的原因?
我在项目中找到了vendor文件夹:
// this fake property is a placeholder for a linebreak
$newCode = str_replace(' private $__EXTRA__LINE;', '', $newCode);
/vendor/symfony/maker-bundle/src/Util/ClassSourceManipulator.php line 611
也许对你有帮助
我正在使用 Doctrine CLI 在已经存在的实体上生成一个 ManyToOne
关联。
生成的代码在变量 $__EXTRA_LINE
的多个声明中丢失,甚至没有从 class 使用 $this->
调用。
这显然是在调用 php bin/console make:migration
或 运行 脚本时由于多重声明而导致的错误,以及由于函数中未定义的变量而导致的错误(未使用 $this->
在函数体中)。
生成的代码如下:
private $__EXTRA__LINE; // 1
/**
* @return Collection|JobInvoice[]
*/
public function getJobInvoices(): Collection
{
return $this->job_invoices;
}
private $__EXTRA__LINE; // 2
public function addJobInvoice(JobInvoice $jobInvoice): self
{
if (!$this->job_invoices->contains($jobInvoice)) {
$this->job_invoices[] = $jobInvoice;
$jobInvoice->setInvoice($this);
}
$__EXTRA__LINE; // no '$this->'
return $this;
}
private $__EXTRA__LINE; // 3
public function removeJobInvoice(JobInvoice $jobInvoice): self
{
if ($this->job_invoices->contains($jobInvoice)) {
$this->job_invoices->removeElement($jobInvoice);
// set the owning side to null (unless already changed)
if ($jobInvoice->getInvoice() === $this) {
$jobInvoice->setInvoice(null);
}
}
$__EXTRA__LINE; // no '$this->'
return $this;
}
什么可能导致此错误或不是错误,它的发生是否出于对此 ManyToOne
工作很重要的原因?
我在项目中找到了vendor文件夹:
// this fake property is a placeholder for a linebreak
$newCode = str_replace(' private $__EXTRA__LINE;', '', $newCode);
/vendor/symfony/maker-bundle/src/Util/ClassSourceManipulator.php line 611
也许对你有帮助