Laravel 将数据透视表附加到具有多个值的表

2024-03-26

背景

我正在创建一个围绕食物过敏的数据库,并且食物和过敏之间存在多对多的关系。还有一个枢轴值称为severity其中有一个数字代表对该食品过敏的严重程度。

这个链接表看起来像这样;

food_id|allergy_id|severity
-------|----------|--------
     1 |        1 |      3
     1 |        4 |      1
     2 |        2 |      1

问题

当尝试使用 Eloquent 更新链接表时(其中$allergy_ids是一个数组)

$food->allergies()->attach($allergy_ids);

我如何将多个值与数据透视表一起添加到该数据透视表中?

我可以添加所有allergy_id使用上面的行一次性添加特定的食品,但是我怎样才能添加severity列同时包含各种严重性值的数组?也许像

$food->allergies()->attach($allergy_ids, $severity_ids);

编辑:对于特定食物可能有 0-20 种过敏,每种过敏的严重程度等级为 0-4,如果这有帮助的话。


You can.

从文档中的这个示例(4.2 http://laravel.com/docs/4.2/eloquent#working-with-pivot-tables, 5.0 http://laravel.com/docs/5.0/eloquent#working-with-pivot-tables):

$user->roles()->sync(array(1 => array('expires' => true)));

前两行的硬编码版本:

$food = Food::find(1);
$food->allergies()->sync([1 => ['severity' => 3], 4 => ['severity' => 1]]);

动态地,当您的数组 $allergy_ids 和 $severities 处于兼容状态(大小和排序)时,您应该先准备同步数据。就像是:

$sync_data = [];
for($i = 0; $i < count($allergy_ids); $i++))
    $sync_data[$allergy_ids[$i]] = ['severity' => $severities[$i]];

$food->allergies()->sync($sync_data);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Laravel 将数据透视表附加到具有多个值的表 的相关文章

  • 如何使用 eloquent/fluent 从单个查询中更新多行?

    我正在学习如何使用 eloquent fluent 从单个查询中插入多行我在这里找到了答案 https stackoverflow com questions 29723865 how to insert multiple rows fro
  • 致命错误:发送表单时未找到“App\Http\Controllers\Input”类

    我正在尝试发送一封包含来自 Laravel 应用程序的表单的电子邮件 当你点击提交时 它会抛出上述错误 致命错误 找不到类 App Http Controllers Input 不知道为什么 因为我没有 也不知道我需要有一个输入控制器 或者
  • 在 Laravel 5.1 中将模型保存到数据库之前执行一些操作

    在 Laravel 5 1 模型中 在将数据写入数据库之前 我该如何做一些事情 例如修改某些数据字段或进行更多验证 关于该问题的文档很难在实际应用中使用 http laravel com docs 5 1 eloquent events h
  • Laravel Eloquent - 附加与同步

    有什么区别attach and sync 在 Laravel 4 的 Eloquent ORM 中 我试图环顾四周 但什么也没找到 附 处理多对多关系时插入相关模型 不需要数组参数 Example user User find 1 user
  • Laravel 4:Facades 是如何解决的?

    我有点想看看 Laravel 4 发生了什么facades在引擎盖下 我们以这个 Facade 为例 File get someArgs 如果我没有记错的话 逐步 过于简化 的调用将是 static method invocation wh
  • 用户登录时如何更新updated_at列?

    我正在尝试更新updated at每次用户登录时 列到当前时间 但我收到以下错误 InvalidArgumentException 找不到四位数年份 数据丢失 PHP input Input all remember Input has r
  • 如何使用 Carbon 获取上个月的第一天和最后一天 - Laravel

    I need First and Last Day of 前一个月使用Carbon Library 我尝试过如下 firstDayofPreviousMonth Carbon now gt startOfMonth gt subMonth
  • 我如何在 Laravel 5.5 的 FormRequest 类中返回自定义响应?

    我正在制作一个 API 我想返回错误数组 其格式如下 validator gt errors 当我通过手动方式验证请求时生成 但我无法操纵响应 我想找到正确的制作方法 这可以在 Laravel 5 4 中通过formatErrors方法并包
  • Laravel 表单标签中内联“必需”星号

    我正在尝试为 Laravel 中的必填字段添加红色星号 但我不确定如何将它们添加到标签中 我目前正在做的是 Form label took act or sat Did you or will you take the SAT or ACT
  • Laravel ErrorException:未定义的变量:\storage\framework\views\ 中的错误

    我尝试使用 redis 队列来延迟发送邮件 但每次都会收到错误 ErrorException 未定义的变量 错误 C wamp64 www laravel boltra storage framework views c653bafa95f
  • 无法合并 Laravel 中的 Eloquent 集合

    我需要在 Laravel 5 1 中合并集合或数组 可以是其中之一 但在 Builder php 第 2071 行中收到错误 BadMethodCallException 调用未定义的方法 Illuminate Database Query
  • 在 Laravel 中记录用户操作

    我正在尝试将用户执行的所有操作 登录 注销 CRUD 记录到我的数据库中的日志表中 并且从我所看到的事件看来是执行此操作的正确方法 我添加了一个did action User 模型的方法 它将给定用户的操作记录到数据库中 这是我到目前为止所
  • Laravel:将变量传递给多个视图

    我想动态地制作菜单 因此显示 本月电影 而不是 十二月电影 参见图片 十二月是每月更新的当前月份 我的问题是菜单不属于特定的路由 控制器 因此我无法像其他路由一样传递变量 例子 month Carbon now gt format F re
  • Laravel,2 个域中的 2 个项目同一会话

    我正在 2 个不同的域 domain1 tld 和域 2 tld 中创建 2 个项目 domain1 tld 是主要事件生成器页面 domain2 tld 是其事件之一 我想共享相同的会话 它们实际上共享相同的数据库和相同的 apache
  • Dingo API 删除“数据”信封

    有没有一种简单的方法可以从 Dingo API 响应中删除 数据 信封 当我使用这个 Transformer 来转换用户模型时 class UserTransformer extends EloquentModelTransformer L
  • 启用 Chrome Headless 时 Dusk 测试失败

    我有一个 HTML 元素 该元素应该仅在第一页加载时显示 Javascript 设置 cookie 如果设置了 cookie 则不会显示该元素 PHP 检查 cookie 如果 cookie 存在 则不会呈现内容 我正在尝试为此进行 lar
  • Laravel 5 中的注册服务在哪里?

    我在用户表中添加了几个字段 在我读到的所有地方都说我还需要更新中的新字段app Services Registrar php文件 但我找不到Services文件夹在任何地方 这是 Laravel 5 中的新安装 这是我的目录结构的屏幕截图
  • 验证 Laravel 中的选择表单

    我的联系表上有这个 html div class form group div
  • Laravel 5 模型 $cats 到数组 utf-8 JSON_UNESCAPED_UNICODE

    当您有一个数组字段并将其保存在数据库中时 它会对数组进行漂亮的 json encode 但没有 JSON UNESCAPED UNICODE 选项 数据最终如下所示 en u039d u03ad u03b1 这几乎没什么用 解决方案当然是使
  • 如何在 vue.js 中使用 SVG.js 插件?

    我在用svg js在我的 Laravel 项目中运行vue js 这就是我使用的方式svg js Step 1 安装svg js作为我的 vue 应用程序中的插件 import svgJs from svg js dist svg expo

随机推荐

  • 顶点缓冲区对象(删除过程)opengl

    我什么时候应该调用 glDeleteBuffersARB 我应该在申请结束后做吗 我可以以某种方式自动化删除顶点缓冲区对象的过程吗 例如 smart ptr 之类的东西 绝不 你永远不应该打电话glDeleteBuffersARB 十多年来
  • 在 .NET 中使用 FB Connect / Google OAuth 登录

    我希望允许我的用户使用我的登录系统 FB Connect 或 Google Login 登录我的网站 我不想仅使用大型库 如 dotnetOpenAuth 来实现这两个选项 那么我应该如何实现这一点 其他问题 我应该如何将 FB Googl
  • ALLOWED_HOSTS 和 Django

    我尝试在生产服务器上启动 Django 1 11 项目 当我启动应用程序时 我看到以下错误 无效的 HTTP HOST 标头 bla bla bla bla bla vla com 您可能需要将 u bla bla bla bla bla
  • 如何根据 iPhone 中的文本大小动态增加按钮宽度?

    我以编程方式创建了 10 个按钮 并在按钮中设置了标题 现在我想动态增加按钮框架大小 它取决于文本 我给出了一些条件并设置了框架大小 但我如何设置确切的帧大小取决于文本 动态获取文本 我的示例代码是 float x 0 y 0 w h 20
  • 在其间至少有 X 间隙长度的区域中生成点

    我试图想出一种在给定区域 在我的例子中是一个正方形 中生成 X 个随机点的方法 造成这个问题的一件事是每个点必须距离所有其他点至少 Y 个单位 首先想到的是 在 c 中 检查新点与所有现有点之间的距离 while points Count
  • 使用虚函数而不是IF语句更快?

    我记得在网上读到过 在极低延迟的情况下 最好使用虚拟函数来代替 IF 语句 这是真的 他们基本上是说动态多态性对于速度情况更好吗 是否有用户可以分享其他 C 低延迟 怪癖 我非常怀疑单个 if else 语句会比使用虚拟函数慢 虚拟函数通常
  • Google Geocode API 经度和纬度不适用于 zip 96101

    I am using google geocode api https developers google com maps documentation geocoding intro https developers google com
  • 具有异步等待任务组的最大线程数

    我的目的是了解 Swift 5 5 使用的 协作线程池 async await 以及任务组如何自动约束并发程度 考虑以下任务组代码 并行执行 32 个计算 func launchTasks async await withTaskGroup
  • 如何使用 Xdocument 将 xml 元素值转换为字符串

    我将 xml 存储在字符串中 并使用 Xdocument 将字符串解析为 xml 从中我需要获取 xml 元素值 并使用该值将其插入到数据库中 任何帮助 将不胜感激 XML
  • vim 一次选择/编辑多个非连续行

    我有一个带有字符串的文件 8 deb http ftp de debian org debian stable main contrib non free 9 deb http ftp de debian org debian stable
  • WebView 未正确显示

    WebView未正确显示网站 任何帮助都会很棒 我使用的代码在所有其他网站上都有效 不确定是什么问题 有什么我应该补充的吗 在 Chrome 和其他浏览器中运行良好 所以不知道该怎么做 任何帮助都会很棒 WebView Chrome pub
  • ValueError:负数不能求小数次方

    当我在终端尝试这个时 gt gt gt 3 66 26 32 0 2 我收到以下错误 Traceback most recent call last File
  • 将 VarBinary RTF blob 转换为 MS SQL 中的文本

    我正在使用 SQL Server 2008 Column Datatype VarBinary RTF 文件被压缩并保存到此 varbinary 列 现在如何使用 SQL 访问和查看 RTF 文件中的数据 它返回这个 弰巎楛 etc 此处尝
  • 带有 JSON 的范围对象

    我正在编写一个 Chrome 扩展程序 我需要将用户在网站上选择的值传递到我的服务器 我正在使用返回范围对象的代码 window getSelection 我正在使用 JSON 将范围对象传递回我的服务器 但它不起作用 我对此很陌生 但我认
  • C# 无法获取某些客户端计算机名称

    我使用下面的代码来获取客户端计算机名称 但是它适用于某些客户端 而某些客户端会出现错误 string IPAdd Request UserHostName IPHostEntry hostEntry Dns GetHostEntry IPA
  • IIS 上的 django,进程意外退出

    我已经阅读了关于该主题的所有文章 但我仍然无法在 IIS 上运行 django 项目 错误消息为 500 Internal Server Error c program files x86 python 3 5 python exe Fas
  • 如何更改 WPF 中绑定选项的默认值?

    在我当前的项目中 我使用了几个文本框控件 其内容由来自数据库的对象填充 该对象使用验证来验证文本的正确插入 当我想显示验证错误 即文本有很多字符 时 我必须向文本属性添加一些绑定选项 如下行所示
  • 删除 json_encode() 中的双引号

    我想删除 json encode 中的双引号 这是我的代码
  • 如何使用 Python 多线程处理 MySQL 连接

    我有一个主要的 Python 脚本 它连接到 MySQL 数据库并从中提取一些记录 根据返回的结果 它会启动与抓取的记录一样多的线程 类实例 每个线程都应该返回数据库并通过将一个状态标志设置为不同的状态 进程已启动 来更新另一个表 为了实现
  • Laravel 将数据透视表附加到具有多个值的表

    背景 我正在创建一个围绕食物过敏的数据库 并且食物和过敏之间存在多对多的关系 还有一个枢轴值称为severity其中有一个数字代表对该食品过敏的严重程度 这个链接表看起来像这样 food id allergy id severity 1 1