Laravel - 将模型关系更新到另一个模型
P粉674999420
2023-09-01 22:36:33
<p>事件模型和患者模型之间存在多对多关系。一个事件可以涉及多个患者,一个患者也可以卷入多个事件。</p>
<p>如果用户创建患者模型的副本,我们希望能够将这两个患者模型合并为一个。这意味着我想将患者 1 涉及的事件移至患者 2,包括数据透视表上的其他属性。</p>
<p>我尝试过简单的事情</p>
<pre class="brush:php;toolbar:false;">Casualty::where('patient_id', $patientOne->getKey())->update(['patient_id' => $patientTwo->getKey()]);</pre>
<p>但这行不通。使用 <code>updateOnExistingPivot()</code> 方法意味着我需要迭代患者 1 的每个事件并运行单独的数据库查询以将患者更新为患者 2。</p>
<p>我也尝试过像这样更新记录</p>
<pre class="brush:php;toolbar:false;">$patientOne->incidents()->update(['patient_id' => $patientTwo->getKey()]);</pre>
<p>这也不起作用,因为事件表上没有 <strong>patent_id</strong> 列。</p>
<p>我怎样才能实现这个目标,还是我做错了什么?</p>
不确定我是否理解您的意思,您想将更多患者归入同一事故中吗?您可以使用
belongsToMany
关系并创建一个数据透视表。然后,当您想要更新数据时,只需使用sync
方法即可。您还可以尝试使用
json_encode()
将它们存储在一列中,该列仅保存用户 ID,稍后再检索它们。抱歉,无法提供更多信息,因为问题没有得到很好的描述。