首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >雄辩的select pivot和update

雄辩的select pivot和update
EN

Stack Overflow用户
提问于 2017-02-23 15:51:48
回答 1查看 54关注 0票数 0

我正在开发一个应用程序,允许用户发布消息,并将其发送到多个设备。

MessageDevices都是使用message_iddevice_iddevice_message数据透视表链接的模型,因为同一消息可以发送到多个设备。

我有一个在创建Message时触发的事件。该事件向设备发送推送通知,我要在device_message数据透视表中创建一个新列,以记录该消息是否已成功发送到设备。此列称为success,是一个布尔值。

该事件有一个foreach循环,它在device_message表中选择相关的消息记录。在此循环中发送推送通知。如果通知发送成功,我希望将数据透视表中的success列更改为true。我该怎么做呢?

为了给出一些上下文,该语句返回相关设备的数据透视表中的所有记录。

代码语言:javascript
复制
$event->message->belongsToMany('Aiir\Models\Device')->withPivot('device_id', 'message_id')->where('device_id', $event->device->id)
EN

回答 1

Stack Overflow用户

发布于 2017-02-23 16:01:49

您可以在belongsToMany关系上使用updateExistingPivot方法,如下所示:

代码语言:javascript
复制
$message = Message::findOrFail($id);
$message->devices()->updateExistingPivot($deviceID, ['success' => true]);

这将在您的数据透视表中将成功设置为true。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42409927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档