Я работаю над формой, использующей ассоциацию @ORM\ManyToOne
, но Doctrine продолжает пытаться проанализировать объект аэропорта вместо идентификатора объекта аэропорта, я пробовал несколько аннотаций, таких как @ORM\JoinColumn(name="id", referencedColumnName="id")
, но я могу не найдете правильную аннотацию, чтобы doctrine анализировал только идентификатор объекта, а не объекта объекта, любая помощь будет оценена. Также я не ищу быстрое и грязное исправление, я ищу чистый и правильный способ сделать это, используя аннотации Doctrine, если это возможно.
Полное сообщение об ошибке:
An exception occurred while executing 'INSERT INTO flight (from, to) VALUES (?, ?)' with params [{}, {}]:
Notice: Object of class App\Entity\Airport could not be converted to int
Рейс. php
/**
* @ORM\Entity(repositoryClass="App\Repository\FlightRepository")
* @ORM\Table(name="flight",
* uniqueConstraints={@ORM\UniqueConstraint(name="flight",columns={"from","to"})}
* )
*/
class Flight
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity="Airport", inversedBy="outbound")
* @ORM\JoinColumn(name="id")
*/
private $from;
/**
* @ORM\ManyToOne(targetEntity="Airport", inversedBy="inbound")
* @ORM\JoinColumn(name="id")
*/
private $to;
public function __toString()
{
return $this->name;
}
Аэропорт. php
/**
* @ORM\Entity(repositoryClass="App\Repository\AirportRepository")
*/
class Airport
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=255)
*/
private $name;
/**
* @ORM\Column(type="string", length=200)
*/
private $region;
/**
* @ORM\OneToMany(targetEntity="Flight", mappedBy="to")
*/
private $inbound;
/**
* @ORM\OneToMany(targetEntity="Flight", mappedBy="from")
*/
private $outbound;