0

私は基本的にこの戦略を実行しました。

主な違いは(私が推測する)私が使用することDoctrine2です。

コンストラクタークラスが呼び出されます(テストエコーが出力されます)が、2つの関数は呼び出されextract()ませhydrate()ん。

次のように戦略を追加しました。

$hydrator = new DoctrineEntity($entityManager);
$hydrator->getHydrator()->addStrategy('my_attribute', new MyHydrationStrategy());
$form->setHydrator($hydrator);

ある種の同様の問題がここに投稿されました

たぶん問題は、私がこの戦略をどのように追加するかということです。でも正直わからない…

誰かが私が間違っていることのヒントを私に与えることができれば素晴らしいでしょう。

4

2 に答える 2

1

よりクリーンでより適切な解決策については、この投稿を参照してください!

ZendFramework2-Doctrine関係のハイドレーター戦略が機能しない

于 2013-01-03T19:20:03.123 に答える
0

@SamはGitHubでこの問題を解決しました。

これは、現在一般的に発生している問題です。addStrategy()はZF2のClassMethodHydratorのものです-このハイドレーターはDoctrineEntity内でサイレントに使用されます。カスタム戦略を追加するには、DoctrineEntityを使用せずに、ClassMethodsHydrator自体を使用します。ClassMethodsでは、戦略を追加できるようになります

このIssue/PR doctrine / DoctrineModule#106もご覧ください。

私のコードは次のようになります。

$hydrator = new ClassMethodsHydrator();
$hydrator->addStrategy('my_attribute', new MyHydrationStrategy());
$form->setHydrator($hydrator);

ところで:属性の下線は問題を引き起こしません

残念ながら、私は別の外部キー関係に基づく問題に遭遇しました。それはDoctrine 問題でさえあるようです。しかし、私はこれについて新しい質問を開きます

于 2013-01-03T15:35:19.353 に答える