@HellWalk

Как создать автозаполняемое int-поле?

Сущность:
/**
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue()
     */
    private $number;


Миграция:
public function up(Schema $schema) : void
    {
        $this->addSql('ALTER TABLE table_name ADD number SERIAL');
    }


При сохранении сущности:
Doctrine\DBAL\Driver\PDO\Exception: SQLSTATE[23502]: Not null violation: 7 ERROR: null value in column "number" violates not-null constraint


Все примеры - с автозаполнением id поля (т.е. @ORM\Id), у меня же это просто дополнительное поле с автозаполнением.
  • Вопрос задан
  • 48 просмотров
Решения вопроса 1
@tukreb
Заходим в документацию https://www.doctrine-project.org/projects/doctrine...
Читаем описание
Specifies which strategy is used for identifier generation for an instance variable which is annotated by @Id. This annotation is optional and only has meaning when used in conjunction with @Id.

Поэтому либо используйте с параметров @id, либо не используйте вообще.

И чисто из логики я не могу представить, когда нужно, чтобы отдельно зачем то последовательно генерировалось число. Ведь это и так делается, если вы сделаете уникальную айдишку, зачем дублировать, мне не понятно.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы