私は提供する「ユーザー」エンティティの周りに一連の関係を定義するPSR読み込みパッケージを持っています。Doctrine Entityマッピングを動的に変更できますか?
このパッケージを使用するユースケースの多くでは、すべてのエンティティをそのまま維持したいが、独自のUserエンティティに置き換えることができます。具体的な例として
パッケージは、(明確なものを維持するためにここに注釈を使用して)私は、このエンティティを与え、:
上記のnamespace CirclicalUser\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* An example entity that represents an action rule.
*
* @ORM\Entity
* @ORM\Table(name="acl_actions_users")
*
*/
class UserActionRule
{
/**
* @var int
* @ORM\Id
* @ORM\ManyToOne(targetEntity="CirclicalUser\Entity\ActionRule", inversedBy="user_exceptions")
* @ORM\JoinColumn(name="action_rule_id", referencedColumnName="id")
*/
protected $action_rule;
/**
* @ORM\Id
* @ORM\ManyToOne(targetEntity="CirclicalUser\Entity\User")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/
protected $user;
}
、私はUserActionRuleにおけるユーザ関係に取って代わる可能性がどのような方法があります:: $私自身のユーザーと、CirclicalUser \エンティティ\ユーザーを対象ユーザー:アクメ\エンティティ\ユーザー(それはそれ自体で教義のエンティティであると仮定した場合)
例えば、PHPふり:
をfunction onBoostrap($e){
DoctrineMagic::getMapping(UserActionRule::class)->get('user')->getManyToOne()->setTargetEntity(Acme\Entity\User::class);
}
ありがとうございました!
あなたは 'loadClassMetadata'イベントにEventSubscriberを試みたことがありますか?あなたは素晴らしいインスピレーションを見つけることができます[SoftDeletableSubscriber](https://github.com/KnpLabs/DoctrineBehaviors/blob/14a4d19e808c955da1b0962b3cf0bdc9f69c61f0/src/ORM/SoftDeletable/SoftDeletableSubscriber.php#L89-L107) –
ちょうど、 dはloadClassMetadataを使って解決しました!私は私の解決策を以下に掲示します。 – Saeven
偉大な仕事!あなたの答えを受け入れてください。そうすれば、その問題は解決済みとマークされます。 –