第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Doctrine 中創(chuàng)建實體時完全按 ID 引用外鍵

在 Doctrine 中創(chuàng)建實體時完全按 ID 引用外鍵

PHP
FFIVE 2022-08-05 10:02:24
我有一組規(guī)范化的實體(偽代碼):User (id, name)Subscription (id, user_id, magazine_id, internal_reference)Magazine (id, name)通常,以標準原則方式創(chuàng)建新訂閱會很容易:// The internal reference is just to emphasize that I have logic inside the constructor that sets an important value$subscription = new Subscription($textThatWillBeMangledToGenerateInternalReference);$subscription->setMagazine($magazine);$subscription->setUser($user);$this->_em->persist($subscription);$this->_em->flush();然而,在我的用例中,我目前有一個實體,但只有1000個UserID。Magazine可能的解決方案:運行類似 .這將是一個相當可怕的解決方法,因為我對這些數(shù)據(jù)沒有欲望,并且它對將要觸發(fā)的查詢沒有任何影響。SELECT * FROM User WHERE id IN (:userIds)->persist創(chuàng)建某種偽實體?也許像那樣使用它。如果這有效(我不確定),這將是可怕的,因為UserID是一個生成值,所以為它添加任何形式的外部設置器將再次成為一個相當可怕的黑客$user = new User($userId);完全跳過學說實體系統(tǒng),并通過PDO將數(shù)據(jù)戳入。這樣做的好處是避免了教義逐個系統(tǒng)相對緩慢的性質(zhì),但這意味著我將跳過訂閱實體內(nèi)部的邏輯。這當然可以移動到其他地方,但我想嘗試并了解是否有一種慣用的方法可以做到這一點。INSERT$internalReference
查看完整描述

1 回答

?
GCT1015

TA貢獻1827條經(jīng)驗 獲得超4個贊

在尷尬的短時間之后,我在這里找到了我想要的答案。


您可以使用實體管理器創(chuàng)建部分引用,以實質(zhì)上允許(相對)干凈的方式執(zhí)行方法 2


在我的問題的上下文中的示例:


$subscription = new Subscription($textThatWillBeMangledToGenerateInternalReference);

$subscription->setMagazine($magazine);

$subscription->setUser($this->_em->getPartialReference(User::class, array('id' => $userId)););

$this->_em->persist($subscription);

$this->_em->flush();


查看完整回答
反對 回復 2022-08-05
  • 1 回答
  • 0 關注
  • 110 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號