簡體   English   中英

如何映射學說實體

[英]How to map doctrine entities

我想調整我的文件夾結構類似的東西:

app 
└─── ...
bin 
└─── ...    
src
└───MyNamespace
    ├───Application
    │   ├───Controller
    │   │   └───UserController.php      
    │   ├───Entity
    │   │   └───User
    │   │       ├───User.php
    │   │       └───UserFactory.php
vendor 
└─── ...        
web 
└─── ...

我在orm部分中的config.yml文件如下所示:

orm:
    auto_generate_proxy_classes: "%kernel.debug%"
    auto_mapping: false
    mappings:
        user:
          type:      php
          dir:       %kernel.root_dir%/../src/MyNamespace/Application/Entity/User/User
          prefix:    MyNamespace\Application\Entity\User\User
          alias:     User
          is_bundle: false    

我的User.php文件以:

namespace MyNamespace\Application\Entity\User;

use Doctrine\ORM\Mapping as ORM;

/**
 * User
 *
 * @ORM\Table()
 * @ORM\Entity
 */
class User
{
...
}

然后我得到:

InvalidArgumentException:指定的非現有目錄“C:/ www / myapp / app /../ src / MyNamespace / Application / Entity / User / User”作為Doctrine映射源。

順便說一下,我正在使用Symfony2框架。

Grimv01k給了我提示,但最終的工作解決方案是在config.yml文件中:

mappings:
    user:
        type: annotation
        dir: %kernel.root_dir%/../src/MyNamespace/Application/Model/User
        alias: 'User'
        prefix: MyNamespace\Application\Model\User
        is_bundle: false  

而已。 如果我沒有將映射類型更改為注釋,我的錯誤是“找不到名為'MyNamespace.Application.Entity.User.User.php'的映射文件”,即使在我的文件夾項目結構中有此文件。 我仍然不理解它,但它現在有效。 Noob天...... :)

好吧,我已經從捆綁包中獲得了Entity ,並且只將配置點指向實體源,如下所示:

orm:
    auto_generate_proxy_classes: "%kernel.debug%"
    auto_mapping: false
    mappings:
        user:
          type:      php
          dir:       %kernel.root_dir%/../src/MyNamespace/Application/Entity
          prefix:    MyNamespace\Application\Entity
          alias:     Entity
          is_bundle: false

Entity目錄應該是一個目錄,因此請嘗試更改dirprefixalias設置。 並且實際上可以將子文件夾User放入其中並通過命名空間使用它。

順便說一下,你可以閱讀一篇關於Symfony結構定制的精彩文章

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM