2016-07-09 29 views
1

私は、ユーザエンティティとのOneToMany関係を持つOrderという名前のエンティティを持っています。Doctrine(Symfony 3)エンティティのカラム位置を設定する方法

/** 
* Class Order 
* 
* @ORM\Entity(repositoryClass="AppBundle\Repository\OrderRepository") 
* @ORM\Table(name="orders") 
* 
* Defines the properties of the Order entity to represent the orders. 
*/ 
class Order 
{ 
    /** 
    * @ORM\Column(type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    protected $id; 

    /** 
    * @var User $user 
    * 
    * @ORM\ManyToOne(
    *  targetEntity="User", 
    *  inversedBy="orders" 
    *) 
    * @ORM\JoinColumn(
    *  name="user_id", 
    *  referencedColumnName="id" 
    *) 
    */ 
    protected $user; 

    // other columns .. 

これを実行すると、テーブルの最後にuser_id列が作成されます。

この列はID列の後に作成できますか?

私が試した:

.. 
* 
* @ORM\ManyToOne(
*  targetEntity="User", 
*  inversedBy="orders" 
*) 
* @ORM\JoinColumn(
*  name="user_id", 
*  referencedColumnName="id" 
*) 
* 
* @Column(
*  columnDefinition="INT NOT NULL AFTER `id`" 
*) 

をしかし、私はエラーを取得する:

[Doctrine\Common\Annotations\AnnotationException] 
    [Semantical Error] The annotation "@Column" in property AppBundle\Entity\Order::$user was never imported. Did you maybe forget to add a "use" statement for this annotation? 

答えて

1

あなたの@Column注釈にORM名前空間を忘れてしまったが、これはあなたの主な問題は解決されません。 columnDefinitionは、@ORM\JoinColumnアノテーションに適用する場合にのみ、必要な処理を実行できます。

関連する問題