3

私のsymfony 2プロジェクトでは、バンドルがあります

src/Cinergy/Bundle/PeopleServiceBundle

教義エンティティに基づいて CRUD コントローラを生成したいのですが、エンティティ パラメータに正しい文字列を入力するのに常に失敗しています。

私は次のようなことを試しました:

php app/console generate:doctrine:crud --entity=Cinergy/Bundle/PeopleServiceBundle:Group

また

php app/console generate:doctrine:crud --entity=@PeopleServiceBundle:Group

それらはすべて、次のようなエラーを返します。

[Doctrine\ORM\ORMException]                             
Unknown Entity namespace alias '@PeopleServiceBundle'.

--entityパラメータの正しい構文は何ですか? それとも、結局何かが足りないのですか?

現在のディレクトリ構造は次のようになります。

src/Cinergy/Bundle/PeopleServiceBundle/
├── Controller
│   ├── GroupController.php
│   └── PersonController.php
├── DependencyInjection
│   ├── Configuration.php
│   └── PeopleServiceExtension.php
├── PeopleServiceBundle.php
├── Resources
│   ├── config
│   │   ├── routing.yml
│   │   └── services.yml
│   ├── doc
│   │   └── index.rst
│   ├── public
│   │   ├── css
│   │   ├── images
│   │   └── js
│   ├── translations
│   │   └── messages.fr.xliff
│   └── views
│       └── Default
│           └── index.html.twig
└── Tests
    └── Controller
        ├── GroupControllerTest.php
        └── PersonControllerTest.php
4

6 に答える 6

9

結局、エンティティの CRUD コントローラーを作成する前に、エンティティを作成する必要があることがわかりました。もちろん、それは理にかなっています。残念ながら、Sensio Generator Bundle のドキュメントには、操作が逆の順序でリストされているため、間違った方向に進んでしまいました。

これは、正しい順序がイストであることを意味します

  1. 新しいバンドル スケルトンの生成
  2. 新しい Doctrine エンティティ スタブの生成
  3. Doctrineエンティティに基づくCRUDコントローラーの生成
于 2012-08-28T06:01:48.927 に答える
2

まず、バンドルを に登録する必要がありますAppKernel

次に、次のコマンドを実行するだけです。バンドルの名前の前に
置かないでください@

php app/console generate:doctrine:crud --entity=PeopleServiceBundle:Group

Doctrine エンティティに基づく CRUD コントローラーの生成についての詳細。

于 2012-08-27T15:49:26.047 に答える
1

symfony docs によると、「エンティティが配置されているバンドル名とエンティティの名前を含むショートカット表記として指定されたエンティティ名」を使用する必要があるため、次のようなものにする必要があります

--entity=CinergyPeopleServiceBundle:Group
于 2012-08-27T15:57:09.983 に答える
0

それがまだ誰かに関連している場合:)みんな、それはDoctrineBundle DoctrineExtensionが、「エンティティ」(または他の構成済み)フォルダーを持つすべての登録済みバンドルに基づいて有効なエイリアスのリストをコンパイルするためです。

したがって、doctrine:generate:crud または generate:doctrine:crud を使用するには、バンドル内にフォルダー エンティティのみを作成する必要があり、最初にエンティティを作成する必要はありません (コマンドが言うように、それは本当です)。

したがって、バンドルにエンティティが既にある場合、またはバンドルに空の Entity フォルダーがある場合に機能します。

于 2015-01-09T16:34:44.770 に答える
0

doctrine.orm の下の app/config/config.yml で削除auto_mapping: trueしたことが問題の原因であることがわかるまで、何時間も検索しました。これは他の人にも役立つかもしれません:)

于 2014-12-23T19:44:14.137 に答える
0

複数のバンドルがあり、別のデータベース接続を使用したい場合は、構成とパラメーターを追加して config.yml と parameters.yml を更新するだけです。

これにより、CRUD 生成の問題が解決されます。

于 2014-01-13T09:54:20.747 に答える