TWTS
Новичок
Есть плоская таблица "Category"
в которой parent_id ссылается на id той же таблицы
Получился вот такой entity:
Но вот беда.
Если выполнить `php bin/console make:migration` создастся миграция, при выполнении которой `php bin/console doctrine:migrations:migrate`, получаем ошибку:
Как поступить в таком случае?
С одной стороны, хочется иметь релейшены children и parent, с другой, из-за этой ошибки отказываться от миграций - глупо.
SQL:
CREATE TABLE `category` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`parent_id` int(11) NOT NULL,
`title` varchar(255) NOT NULL,
`ord` smallint(6) NOT NULL,
PRIMARY KEY (`id`) USING BTREE
)
Получился вот такой entity:
PHP:
class Category
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="integer", nullable=false)
*/
private $parent_id;
/**
* Many Categories have One Category.
* @ORM\ManyToOne(targetEntity="App\Entity\Category", inversedBy="children")
* @ORM\JoinColumn(name="parent_id", referencedColumnName="id", nullable=true)
*/
private $parent;
/**
* One Category has Many Categories.
* @ORM\OneToMany(targetEntity="App\Entity\Category", mappedBy="parent_id")
* @ORM\OrderBy({"ord" = "ASC"})
*/
private $children;
/**
* @ORM\Column(type="string", length=255)
*/
private $title;
/**
* @ORM\Column(type="smallint")
*/
private $ord;
Если выполнить `php bin/console make:migration` создастся миграция, при выполнении которой `php bin/console doctrine:migrations:migrate`, получаем ошибку:
SQL:
SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`database`.`#sql-3c0d_b6`, CONSTRAINT `FK_64C19C1727ACA70` FOREIGN KEY (`parent_id`) REFERENCES `category` (`id`))
С одной стороны, хочется иметь релейшены children и parent, с другой, из-за этой ошибки отказываться от миграций - глупо.
Последнее редактирование: