オーバーライド ドキュメント (mongodb) と generator.yml に問題があります。
親文書:
<php
namespace Acme\DemoBundle\Document;
use Doctrine\ODM\MongoDB\Mapping\Annotations as ODM;
/**
* @ODM\Document
*/
class Product
{
/**
* @ODM\ReferenceOne(targetDocument="Badge")
*/
private $badge;
}
子ドキュメント:
<php
namespace Acme\TestDemoBundle\Document;
use Acme\DemoBundle\Document\Product as BaseProduct;
use Doctrine\ODM\MongoDB\Mapping\Annotations as ODM;
/**
* @ODM\Document
*/
class Product extends BaseProduct
{
/**
* @ODM\String
*/
private $field;
}
オーバーライドされたジェネレーターで新しいモデルを指定すると問題が発生します
親ジェネレーター:
generator: admingenerator.generator.doctrine_odm
params:
model: Acme\DemoBundle\Document\Product
namespace_prefix: Acme
bundle_name: DemoBundle
i18n_catalog: AcmeDemoBundle
object_actions:
delete: ~
fields:
badge:
label: badge.label
# ......
子ジェネレーター:
generator: admingenerator.generator.doctrine_odm
params:
model: Acme\TestDemoBundle\Document\Product
namespace_prefix: Acme
bundle_name: DemoBundle
i18n_catalog: AcmeDemoBundle
object_actions:
delete: ~
fields:
badge:
label: badge.label
field:
label: field.label
# ......
オーバーライドされたジェネレーターで新しいモデルを指定すると、問題が発生します。新しいジェネレーター モデル属性に設定すると、「関連付け名が必要です。'badge' は関連付けではありません」Acme\TestDemoBundle\Document\Product
というエラーが表示されます。
hasAssociation()
配列内のメタデータ チェック フィールドからのメソッドですが、フォーム配列fieldMappings
がgetAssociationTargetClass()
返されますasociationMappings