我收到錯誤Could not resolve type of column "id" of class "App\Entity\Officecurrencymax"從我的安裝中得到錯誤。已經檢查了類似的問題,但我似乎無法正確理解 Doctrine 注釋。
我有 2 個具有多對一關系的物體,Office 和 OfficeCurrencyMax。一個 Office 可以有多個 OfficeCurrencyMax。
/**
* Office
*
* @ORM\Table(name="Office")
* @ORM\Entity(repositoryClass="App\Repository\OfficeRepository")
*/
class Office
{
// ...
/**
* @ORM\ManyToOne(targetEntity="Officecurrencymax", inversedBy="offices")
*/
private $officeCurrencyMaxes;
// ...
public function getOfficeCurrencyMaxes(): ?Officecurrencymax
{
return $this->officeCurrencyMaxes;
}
public function setOfficeCurrencyMaxes(?Officecurrencymax $officeCurrencyMaxes): self
{
$this->officeCurrencyMaxes = $officeCurrencyMaxes;
return $this;
}
}
然后是 Officecurrencymax 物體:
/**
* Officecurrencymax
*
* @ORM\Table(name="OfficeCurrencyMax", indexes={@ORM\Index(name="IDX_6F39111B73FD6E34", columns={"Office"})})
* @ORM\Entity(repositoryClass="App\Repository\OfficeCurrencyMaxRepository")
*/
class Officecurrencymax
{
// ...
/**
* @var integer
*
* @ORM\Column(name="Id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var \Office
*
* @ORM\ManyToOne(targetEntity="Office", inversedBy="offices")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="Office", referencedColumnName="OfficeId")
* })
*/
private $office;
// ...
public function getId(): ?int
{
return $this->id;
}
// ...
}
我不得不大量減少代碼,因為 StackOverflow 不允許我發帖it looks like your post is mainly code, please add some more details。
uj5u.com熱心網友回復:
在您的情況下,您希望擁有1-Office擁有Many-Officecurrencymax
所以Office應該有一個OneToMany屬性和Officecurrencymax一個ManyToOne.
有一些錯誤,例如您的 Office 物體說該屬性被反轉: inversedBy="offices"而在物體$offices中不存在。Officecurrencymax
您的OneToManyOffice應如下所示:
/**
* @ORM\OneToMany(targetEntity=Officecurrencymax, mappedBy="office")
*/
private $officeCurrencyMaxes;
在 Officecurrencymax 中,我們有相反的關系:
/**
* @ORM\ManyToOne(targetEntity=Office, inversedBy="officeCurrencyMaxes")
* @ORM\JoinColumn(name="Office", referencedColumnName="OfficeId")
*/
private $office;
不要忘記更新資料庫模式。
uj5u.com熱心網友回復:
基于這些檔案,我假設您的映射的默認列名應該是id(注意大小寫)。由于某種原因,您已將列名大寫
@ORM\Column(name="Id" ...
我建議簡單地將其更改為
@ORM\Column(name="id" ...
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/521198.html
標籤:交响乐教义形式
