我是 Symfony 的新用戶,我想在 2 個物體之間建立關系。
我有一個名為“Suggest”的物體和另一個名為“Car”的物體
每個sSuggest可以有一輛或多輛,一輛汽車可用于0或多個suggest
我想要在我的“建議”物體中有一個名為“汽車”的新欄位(汽車名稱的欄位),但我不想在“汽車”物體中添加新欄位
我該怎么做 ?
我試圖在我的 Suggest 物體上建立關系 ManyToOne,但它為我創建了一個汽車的 id 欄位,我只能放一個。
使用 ManyToMany 關系,是否可以在我的“建議”物體上僅獲得一個新欄位?
uj5u.com熱心網友回復:
假設您正在使用make:entity命令:如果您cars向物體添加一個屬性Suggest,并使其與ManyToMany相關Car,它不會向Car該類添加額外的屬性(您可以這樣說no):
Car:
<?php
namespace App\Entity;
use App\Repository\CarRepository;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass=CarRepository::class)
*/
class Car
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
public function getId(): ?int
{
return $this->id;
}
}
并且Suggest:
<?php
namespace App\Entity;
use App\Repository\SuggestRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass=SuggestRepository::class)
*/
class Suggest
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\ManyToMany(targetEntity=Car::class)
*/
private $cars;
public function __construct()
{
$this->cars = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
/**
* @return Collection<int, Car>
*/
public function getCars(): Collection
{
return $this->cars;
}
public function addCar(Car $car): self
{
if (!$this->cars->contains($car)) {
$this->cars[] = $car;
}
return $this;
}
public function removeCar(Car $car): self
{
$this->cars->removeElement($car);
return $this;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/527634.html
標籤:php交响乐
