7

私は Symfony2 に比較的慣れていませんが、これまでのところ気に入っています - 私が直面し続けているこの問題を除いて。

恐ろしい (私にとって): doctrine:generate:entities

最初の Symfony2 プロジェクトを開始したとき、そのコマンドを機能させることができず、代わりに doctrine:generate:entity を使用するだけでうまくいきました。

ただし、今回は、データベース テーブルが既にあるシステム用のアプリケーションを作成しようとしています。Symfony2 Docsの指示に従いましたが、doctrine:generate:entities ビット以外はすべて正常に動作しているように見えました。

次のエンティティ ファイル @ My/Bundle/FeedManagerBundle/Entity/Feeds.php があります。

<?php

namespace My\Bundle\FeedManagerBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Feeds
 *
 * @ORM\Table(name="feeds")
 * @ORM\Entity
 */
class Feeds
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="feed_label", type="string", length=100, nullable=false)
     */
    private $feedLabel;

    /**
     * @var integer
     *
     * @ORM\Column(name="advertiser_id", type="integer", nullable=false)
     */
    private $advertiserId;

    /**
     * @var boolean
     *
     * @ORM\Column(name="active", type="boolean", nullable=false)
     */
    private $active;


}

My/Bundle/FeedManagerBundle/Resources/config/doctrine/Feeds.orm.yml

Feeds:
    type: entity
    table: feeds
    fields:
    id:
        id: true
        type: integer
        unsigned: false
        nullable: false
        generator:
            strategy: IDENTITY
    feedLabel:
        type: string
        length: 100
        fixed: false
        nullable: false
        column: feed_label
    advertiserId:
        type: integer
        unsigned: false
        nullable: false
        column: advertiser_id
    active:
        type: boolean
        nullable: false
    lifecycleCallbacks: {  }

そして、これは私が得ているエラーです:

$ php app/console doctrine:generate:entities My/Bundle/FeedManagerBundle/Entity/Feeds --path=src
Generating entity "My\Bundle\FeedManagerBundle\Entity\Feeds"



  [Doctrine\Common\Persistence\Mapping\MappingException]                                                                         
  Invalid mapping file 'My.Bundle.FeedManagerBundle.Entity.Feeds.orm.yml' for class 'My\Bundle\FeedManagerBundle\Entity\Feeds'.  



doctrine:generate:entities [--path="..."] [--no-backup] name

yml ファイルの名前をフルパスに変更してみました。また、yml ファイルの最初の行をフル パスに変更しようとしましたが、これらの両方を同時に実行しようとしました。何もうまくいかないようで、今、私は髪を引っ張る段階に来ています. これが機能しない理由を誰か考えられますか?

4

4 に答える 4

13

次のように変更Feed.orm.ymlします。

My\Bundle\FeedManagerBundle\Entity\Feeds:
   type: entity
   table: feeds
   ...
于 2013-02-27T16:30:01.200 に答える
1

5時間検索した後、回答が見つかりませんでした...

yml から model.php へのエンティティを生成するには、これを行うだけです。以下の太字のテキストに注目してください。コマンドは次のとおりです。

php app/console doctrine:generate:entities YourAppBundle:ReplaceWithEntityName --path src/

model.orm.yml ファイルがフォルダーにあることを確認してください

C:\xyz\abc**AppBundle\Resources\config\doctrine** であり、yml ファイルには、マッピング コード「AppBundle\Entity\Book:」の先頭に追加された引用符で囲まれたこの参照があります。

于 2017-01-11T11:41:21.077 に答える
1

I had a same issue, but the problem was not there.

In fact, I wanted to change the name of the entity, ie: My\Bundle\FeedManagerBundle\Entity\Aircaft: was going to be My\Bundle\FeedManagerBundle\Entity\Aircraft:

(because the table was "aircaft" :-S)

but I didn't change the file name. when I change aircaft.orm.yml to aircraft.orm.yml (with "r") the command works!!

于 2013-10-29T12:36:08.893 に答える