dto - data transfer object. структура данных, используемая для передачи информации по сети или, как ее часто юзают в вебе, между слоями приложения. делают так для типизации, автокомплита и многих других возможностей структур по сравнению с обычными типами данных. дто должна уметь быть сериализована, чтобы ее можно было превратить в строку (json, например) и восстановить из строки снова в объект.
И еще. Поскольку в этом уроке мы сделали конструктор класса App\Entity\Comment приватным, а далее вы пытаетесь его создать как класс с публичным конструктором ?
Надеюсь, в 18 уроке мы это подправим.
Посмотрите мой код, может я где ошибся?
Нужна новая фикстура под измененный класс App\Entity\Post
Ошибка SQLSTATE[42000]: Syntax error or access violation: 1091 Can't DROP 'FK_9474526C4B89032C'; check that column/key exists появлялась при выполнении команды php bin/console doctrine:migrations:migrate
"должна проверяться до создания сущности: в форме или дто)" ---что такое "дто" ?
dto - data transfer object. структура данных, используемая для передачи информации по сети или, как ее часто юзают в вебе, между слоями приложения. делают так для типизации, автокомплита и многих других возможностей структур по сравнению с обычными типами данных. дто должна уметь быть сериализована, чтобы ее можно было превратить в строку (json, например) и восстановить из строки снова в объект.
Тёма, добрый день!
Вот мой GitHub с текущим состоянием проекта Блог.
Была проблема при выполнении команды
В итоге сделал
После этого дропнулись данные в таблице posts
И еще. Поскольку в этом уроке мы сделали конструктор класса App\Entity\Comment приватным, а далее вы пытаетесь его создать как класс с публичным конструктором ?
Надеюсь, в 18 уроке мы это подправим.
Посмотрите мой код, может я где ошибся?
Нужна новая фикстура под измененный класс App\Entity\Post
Тёма, можете мне помочь?
Какая была ошибка при выполнении миграции?
Ошибка
SQLSTATE[42000]: Syntax error or access violation: 1091 Can't DROP 'FK_9474526C4B89032C'; check that column/key exists
появлялась при выполнении командыphp bin/console doctrine:migrations:migrate
Что-то не то с миграциями, удалите их все и накатите заново
Да, все верно. Необходимо в фикстуре использовать метод
Post::fromDraft()
вместо$post = new Post()
. Для этого нужно будет также создать юзера или в этой фикстуре, или в отдельной. Чтобы юзера из отдельной фикстуры можно было достать в другой, используется такой механизм: https://symfony.com/doc/current/bundles/DoctrineFixturesBundle/index.html#sharing-objects-between-fixturesФикстуры сделал тут код. Они работают.
И еще не надо делать класс App\Entity\User финальным. Испарите, пожалуйста.