Php 拉维更新多态关系

Php 拉维更新多态关系,php,laravel,polymorphism,Php,Laravel,Polymorphism,首先,如果有比使用多态关系更好的方法,请让我知道。我有一个约会表,它可以有联系人id或关系id,具体取决于用户在创建新约会时选择的内容。为此,我使用了多态关系,而不是两个独立的contact\u id和relation\u id列 另外,如果有更好的方法来做下面的事情(我目前正在我的商店和更新方法中做),请详细说明 if ($request->has('contact_id')) { Contact::find($request['contact_id'])

首先,如果有比使用多态关系更好的方法,请让我知道。我有一个约会表,它可以有联系人id或关系id,具体取决于用户在创建新约会时选择的内容。为此,我使用了多态关系,而不是两个独立的
contact\u id
relation\u id

另外,如果有更好的方法来做下面的事情(我目前正在我的商店和更新方法中做),请详细说明

    if ($request->has('contact_id'))
    {
        Contact::find($request['contact_id'])->appointments()->save($appointment);
    }

    if ($request->has('relation_id'))
    {
        Relation::find($request['relation_id'])->appointments()->save($appointment);
    }
以上内容主要检查是否从下拉列表中选择了联系人或关系,如果是,则应将多态关系添加到新插入的约会中

但是,在检查是否指定了联系人id或关系id之前,我在更新方法中执行的操作如下:

Appointment::where('id', $appointment->id)->update(['relationship_id' => '0', 'relationship_type' => '']);
因此,我首先清空多态关系,然后检查更新,因为联系人或关系是可选的。因此,当某人更新他/她的约会,并删除第一个指定的联系人或关系时,应将其从数据库中清除。必须有更好的方法来解决这个问题,我知道我现在所做的不是最好的方法。但我对多态关系还不熟悉,只是想了解更多。如有任何信息,将不胜感激:)