[英]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
目錄應該是一個目錄,因此請嘗試更改dir
, prefix
和alias
設置。 並且實際上可以將子文件夾User
放入其中並通過命名空間使用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.