Я прочитал много сообщений о Stackoverflow и документации доктрины, но не могу найти ошибку в этом коде. Может быть, кто-то может привести меня в правильном направлении, так как я уверен, что не понимаю смысл этой концепции. Это мой первый проект с доктриной.
У меня есть три объекта, и база данных генерируется правильно, но я всегда получаю эти ошибки при выполнении
php ./bin/console доктрина: схема: проверить
сущности следующие (сокращенные):
[FAIL] Недопустимое отображение класса сущностей App \ Entity \ DeployedTrap: *
Ассоциация App \ Entity \ DeployedTrap # trapId ссылается на обратную
боковое поле App \ Entity \ TrapDefinition # id, которое не определено как
ассоциация. * Ссылка на ассоциацию App \ Entity \ DeployedTrap # trapId
в поле обратной стороны App \ Entity \ TrapDefinition # id, которое не
существовать. * Ассоциация App \ Entity \ DeployedTrap #, на которую ссылается клиент
поле обратной стороны App \ Entity \ Customer # customerId, которое не является
определяется как ассоциация. * Ассоциация
App \ Entity \ DeployedTrap # customer ссылается на обратное боковое поле
App \ Entity \ Customer # customerId, который не существует.
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
*
* @ORM\Table(name="traps_deployed")
* @ORM\Entity(repositoryClass="App\Repository\DeployedTrapRepository")
*/
class DeployedTrap
{
/**
* @ORM\Column(name="id", type="integer", options={"unsigned"=true})
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
public $id;
/**
* Owning side
* @ORM\JoinColumn(name="trap_id", referencedColumnName="id")
* @ORM\ManyToOne(targetEntity="TrapDefinition", inversedBy="id")
*/
public $trapId;
/**
* @ORM\JoinColumn(name="customer", referencedColumnName="customerId")
* @ORM\ManyToOne(targetEntity="App\Entity\Customer", inversedBy="customerId")
*/
private $customer;
}
Класс TrapDefinition:
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
/**
* @ORM\Table(name="traps_definition")
* @ORM\Entity(repositoryClass="App\Repository\TrapDefinitionRepository")
*/
class TrapDefinition
{
/**
* @ORM\Column(name="id",type="integer", options={"unsigned"=true})
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
* @ORM\OneToMany(targetEntity="DeployedTrap", mappedBy="trapId")
*/
public $id;
public function __construct()
{
$this->id = new ArrayCollection();
}
}
класс Заказчик:
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\ORM\Events;
use Doctrine\Common\Collections\ArrayCollection;
/**
* @ORM\Table(name="customers")
* @ORM\Entity(repositoryClass="Doctrine\ORM\EntityRepository")
* @ORM\HasLifecycleCallbacks
*/
class Customer
{
/**
* @ORM\Column(type="integer",name="customerId",length=11, nullable=false, options={"unsigned"=true})
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
* @ORM\OneToMany(targetEntity="DeployedTrap", mappedBy="customer")
*/
public $customerId;
public function __construct()
{
$this->customerId = new ArrayCollection();
}
}