加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

php – 如果尚未附加Laravel关系附加

发布时间:2020-12-14 19:36:04 所属栏目:大数据 来源:网络整理
导读:如果尚未附加关系,是否可以快速添加关系.我正在使用此代码来更新模型的关系; if (!empty($request-get('roles')) is_array($request-get('roles'))) { $message-Roles()-attach($request-get('roles')); } if (!empty($request-get('users')) is_array($requ
如果尚未附加关系,是否可以快速添加关系.我正在使用此代码来更新模型的关系;

if (!empty($request->get('roles')) && is_array($request->get('roles'))) {
            $message->Roles()->attach($request->get('roles'));
        }
        if (!empty($request->get('users')) && is_array($request->get('users'))) {
            $message->Users()->attach($request->get('users'));
        }

但我得到这个错误,我是这个错误;

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry ‘1-41’ for key ‘PRIMARY’ (SQL: insert into message_user (message_id,user_id) values (1,41),(1,42),43),44),45),46),47),48),49),50))

我想避免经历一个很长的数组检查列表,哪些用户尚未附加并附加它们.如果这是唯一的方法,请告诉我.

我在想类似的东西;

$message->Users()->attachIfNotAttached($request->get('users'));

解决方法

像这样的东西可能会起作用:

获取已附加的ID:

$attachedIds = $message->Users()->whereIn('id',$request->get('users'))->pluck('id');

从请求数组中删除附加的ID:

$newIds = array_diff($request->get('users'),$attachedIds);

附加新ID:

$message->Users()->attach($newIds);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读