Symfony 3 Doctrine MySQL - генерирует сущности с аннотациями @ORM
В соответствии с Symfony 3 docs после запуска 3 команд:
php bin/console doctrine:mapping:import --force AcmeBlogBundle xml
php bin/console doctrine:mapping:convert annotation ./src
php bin/console doctrine:generate:entities AcmeBlogBundle
Я должен получить результат чего-то вроде:
// src/Acme/BlogBundle/Entity/BlogComment.php
namespace Acme\BlogBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Acme\BlogBundle\Entity\BlogComment
*
* @ORM\Table(name="blog_comment")
* @ORM\Entity
*/
class BlogComment
{
/**
* @var integer $id
*
* @ORM\Column(name="id", type="bigint")
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var string $author
*
* @ORM\Column(name="author", type="string", length=100, nullable=false)
*/
private $author;
.....
к сожалению, вместо этого я получаю грубо сопоставленный класс с получателями и установщиками, которые выглядят так:
<?php
namespace Clashers\PanelBundle\Entity;
/**
* Users
*/
class Users
{
/**
* @var string
*/
private $username;
/**
* Set username
*
* @param string $username
*
* @return Users
*/
public function setUsername($username)
{
$this->username = $username;
return $this;
}
/**
* Get username
*
* @return string
*/
public function getUsername()
{
return $this->username;
}
Кто-нибудь из вас сталкивался с такой проблемой и решил ее без необходимости вручную присваивать каждое свойство типу БД, столбцу? Есть ли какие-либо настройки (и) Доктрины, которые я пропустил, чтобы правильно генерировать эти объекты?
1 ответ
ОК, проблема решена. Я просто еще раз повторил эту команду и как-то пропустил ошибку, вызванную тем, что уже создал сущность Users. Это, скорее всего, не позволит Doctrine создавать другие объекты и запускать последнюю команду
php bin/console doctrine:generate:entities AcmeBlogBundle
без полной обработки
php bin/console doctrine:mapping:convert annotation ./src
в итоге будут отсутствовать аннотации, как у меня было.