2012-08-27 72 views
3

在我的symfony項目,我必須在如何解決PHP應用程序捆綁/控制檯產生:學說:CRUD

src/Cinergy/Bundle/PeopleServiceBundle 

捆現在,我想根據教義實體生成一個CRUD控制器,但我總是不能輸入正確的字符串作爲實體參數。

我試過的東西:

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

php app/console generate:doctrine:crud [email protected]: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 

回答

2

首先,你需要你的包註冊到您AppKernel

然後只需運行以下命令。
集的名稱

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

更多generating a CRUD controller based on a Doctrine entity之前不要把@

+0

這會返回相同的錯誤消息:[Doctrine \ ORM \ ORMException]未知實體名稱空間別名'PeopleServiceBundle'。 – BetaRide

1

根據symfony的文檔,你必須使用「給出包含在其中的實體所在的包名稱和tvhe實體的名稱的快捷符號的實體名稱」,所以它應該像

--entity=CinergyPeopleServiceBundle:Group 
+0

這將返回[Doctrine \ ORM \ ORMException]未知實體名稱空間別名'CinergyPeopleServiceBundle'。 – BetaRide

+0

Bundle的名稱是什麼? src/Cinergy/Bundle/PeopleServiceBundle中的文件如何命名? –

+0

我在問題中添加了當前目錄樹。 – BetaRide

0

如果你有一個以上的捆綁,並要使用不同的數據庫連接只需更新你的配置。 yml和parameters.yml通過添加配置和參數。

這將解決CRUD生成問題。

0

我搜索了幾個小時,直到我發現在我的app/config/config.yml下的doctrine.orm中,我刪除了auto_mapping: true這導致了問題。這可能如果仍然相關的人:) 傢伙別人:)

+1

當然,不要錯過運行app/console原則:schema:update --force –

0

是有用的,這是因爲DoctrineBundle DoctrineExtension編譯基於所有註冊捆綁有效的別名,有「實體」列表中(或其他配置)在他們的文件夾。

所以爲了使用原則:生成:crud或者生成:doctrine:crud, 你必須在你的包中創建文件夾實體,並且不需要先創建實體(如命令所示 - 這是真的)。

所以,如果你的包中已經有一些實體,或者如果你的包中只有空的實體文件夾,那麼你就可以工作。

相關問題