Задать вопрос
@esisl
Разработчик

Simfony + doctrine создаю таблицу. Почему для поля с указанным типом integer создаётся поле типа varchar?

/**
 * @ORM\Entity{repositoryClass="UrlsRepository"}
 * @ORM\Table{name="app_urlshortener_urls"}
 * @ORM\HasLifecycleCallbacks
 */
 class Urls{
 	/**
	 * @ORM\Id()
	 * @ORM\Column(name="id", type="integer", nullable=false)
	 * @ORM\GeneratedValue{strategy="AUTO"}
	 * 
	 * @var int
	 * 
	 */
	 protected $id;
	 /**
	  * @ORM\Column(type="text", nullable=true)
	  */
	 protected $url;
...


Для поля id явно указываю в аннотации type="integer"
Ожидаю, что после app/console doctrine:schema:update --force
получу в таблице mysql индексное поле int(11) с автоинкрементом

Вместо этого создаётся таблица:
CREATE TABLE `Urls` (
`id` varchar(255) ...

Что не так с ДНК? :(
  • Вопрос задан
  • 120 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
@esisl Автор вопроса
Разработчик
Мдя...

В общем поле стало int(11) когда вообще убрал и оставил:

@ORM\Id
@ORM\Column(type="integer")
@ORM\GeneratedValue

Более того. У меня раньше $em->persist вылетал с ошибкой. А теперь заработало.

Сам колдун, и уж как я всё это шаманство ненавижу!
Можно закрывать вопрос.
Ответ написан
Комментировать
slimus
@slimus
Symfony, Golang
Никаких колдунств. У вас указано название таблицы:
@ORM\Table{name="app_urlshortener_urls"}
а таблица urls описана в другом месте
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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