Laravel 5:违反完整性约束:1062 - 多对多

2024-04-23

我需要以下方面的一些建议。

我有两次迁移,就像这样。

        Schema::create('plates', function (Blueprint $table) {
        $table->increments('id');
        $table->integer('serial_number');
        $table->string('crc-code', 50);
        $table->string('reason', 50)->nullable();

        $table->softDeletes();

        $table->timestamps();
    });

还有另外一个

  Schema::create('documents', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name', 25)->unique();
        $table->text('description')->nullable();
        $table->longText('relative_path');

我像这样设置了多对多关系的数据透视表

        Schema::create('document_plate', function (Blueprint $table) {
      $table->integer('plate_id')->unsigned()->index();
      $table->integer('document_id')->unsigned()->index();

      $table->primary(['plate_id', 'document_id']);

      $table->timestamps();
    });

当采取某种行动时,我使用下面的代码附加一个plate to a document

       $plate  =   Plate::find(1);
       $doc    =   Document::find(1);
       if($plate && $doc) {
          $plate->documents()->attach($doc->id);
       }

第一次,一切都很好!这document_plate得到更新。当有相同的情况时会发生错误ids再做一次。

SQLSTATE[23000]:违反完整性约束:1062 键“PRIMARY”的重复条目“1-1”(SQL:插入document_plate (created_at, document_id, plate_id, updated_at)

Now the question

有没有办法避免出现错误并用相同的方法更新表ids??

或者..我需要在前端设置某种验证,告诉用户(在提交之前)他/她选择相同的id's已经在表中了。

注意:我使用 AngularJS 进行前端操作。


Laravel 通过使用sync方法。这sync默认情况下,方法将分离您未传递给它的任何 id,但它接受第二个参数,该参数可以禁用分离。

$plate->documents()->sync([$doc->id], false);

如果表中尚不存在该条目,则只会添加该条目。

API 链接:http://laravel.com/api/5.1/Illuminate/Database/Eloquent/Relations/BelongsToMany.html#method_sync http://laravel.com/api/5.1/Illuminate/Database/Eloquent/Relations/BelongsToMany.html#method_sync

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

Laravel 5:违反完整性约束:1062 - 多对多 的相关文章

  • 在 CentOS 中安装 PHP Zip 扩展

    我正在尝试在 CentOS 中安装 PHP Zip 扩展 我的服务器没有外部互联网访问权限 所以我自己从 PECL 下载了它 http pecl php net package zip http pecl php net package z
  • file_get_contents,HTTP 请求失败

    我尝试使用以下方式从另一个网站获取内容file get contents但我总是收到 无法打开流 HTTP 请求失败 allow url fopen 已打开 并且我已经在防火墙关闭的情况下进行了测试 但还是会出现这种情况 请问还有什么原因呢
  • “警告:mysql_query():提供的参数不是有效的 MySQL-Link” - 为什么?

    我的代码有什么问题吗 我不断收到此错误 Warning mysql query supplied argument is not a valid MySQL Link resource in functions php on line 4
  • Ajax 与 chrome 扩展

    我将 url 发送到 chrome 扩展中的 php 文件 并需要获得响应 但不起作用 清单 json name Get pages source version 1 0 manifest version 2 description Get
  • Laravel 5 配置语言环境,不起作用

    已完成的修改 on 配置 应用程序 php locale gt env APP LOCALE en fallback locale gt en on env APP LOCALE pt 我也复制了 资源 lang en文件到 资源 lang
  • CodeIgniter/PHP - 从视图内调用视图

    基本上 对于我的网络应用程序 我正在尝试更好地组织它 目前 每次我想加载页面时 我都必须从控制器中执行此操作 如下所示 this gt load gt view subviews template headerview this gt lo
  • 传递给 Illuminate\Routing\Middleware\ThrottleRequests::addHeaders() 的参数 1 必须是以下实例

    我创建了一个新的中间件来检查用户令牌我创建了中间件然后添加到 kernal php 但是当我尝试访问中间件中的 request 时我收到错误 这是我的中间件代码 namespace App Http Middleware use Illum
  • 与 PHP 相比,Python 与 HTML 的“流畅”程度如何?

    我正在考虑从使用 PHP 切换到使用 Python 来开发 Web 应用程序 但我想知道 Python 是否像 PHP 一样擅长在 HTML 中穿插 本质上 我发现它使用起来非常简单 直观将 PHP 放在我想要的位置 然后可以随意安排 组织
  • 项目链接在 Wamp 服务器上不起作用

    我正在另一台计算机上安装 Wamp 服务器来运行中型数据库和 UI 我已成功阻止 IIS 并将服务器路由到 Localhost 8080 但是每当我尝试从 localhost 主页访问我的项目时 在 www 文件中 我被重定向到页面未找到错
  • json_decode 到自定义类

    是否可以将 json 字符串解码为 stdClass 以外的对象 不是自动的 但你可以按照老式的路线来做 data json decode json true class new Whatever foreach data as key g
  • 很简单的PHP加法问题

    我想我已经关注这个问题太久了 为什么这段代码打印 no 它应该打印 yes 不是吗 我在 PHP 5 3 和 PHP 5 2 上尝试过 都打印 no See 比较浮点数 http www cygnus software com papers
  • FPM 与 apache2 无法工作(权限被拒绝)

    我正在尝试使用 apache fastcgi 和 fpm 设置一个 Debian Web 服务器 但我越来越恼火 一旦我停用 mod php 我就会收到以下错误 2014 年 5 月 22 日星期四 12 16 10 错误 客户端 xxx
  • php 包含打印 1

    我编写了以下代码 当我将 include 函数与旨在输出到页面的函数 例如 或 echo include foo php 结合使用时 它会返回包含内容 但在已包含的内容后面带有 1 echo include foo php 应该 inclu
  • 唯一的图像哈希值即使 EXIF 信息更新也不会改变

    我正在寻找一种方法来为 python 和 php 中的图像创建唯一的哈希值 我考虑过对原始文件使用 md5 和 因为它们可以快速生成 但是当我更新 EXIF 信息 有时时区关闭 时 它会更改总和 并且哈希也会更改 有没有其他方法可以为这些文
  • PHP + MySQL 队列

    我需要一个充当队列的简单表 我的 MySQL 服务器限制是我不能使用 InnoDB 表 只能使用 MyISAM 客户 工人将同时工作 他们每次都需要接受不同的工作 我的想法是执行以下操作 伪代码 job lt SELECT FROM que
  • 安全地评估简单的数学

    我想知道是否有一种安全的方法来评估数学 例如 2 2 10000 12000 10000 20 2 2 40 20 23 12 无需使用eval 因为输入可以来自任何用户 我需要实现的只是整数的加法和减法 是否有任何已经存在的代码片段 或者
  • MVC 框架中的缓存策略?

    我编写了自己的小型 PHP MVC 框架 现在正在探索 PHP MVC 框架中的缓存策略 我正在考虑可以缓存什么 在哪里以及如何缓存 我的框架是简单的MVC框架 我有前端控制器 它启动应用程序 注册类自动加载 设置 php 运行时指令 最后
  • 如何让php页面从html页面接收ajax post

    我有一个非常简单的表单 其中有一个名字输入字段 我捕获了表单数据 并使用标准 jQuery 发布方法通过 ajax 将其传输到 PHP 页面 但是 我根本无法从 PHP 页面获得任何在服务器端捕获数据的响应 我不确定我做错了什么或缺少什么
  • Laravel 5 Eloquent 在多个级别上将关系附加到 JSON

    因此 在模型中包含关系非常容易 例如 class User extends Model protected with roles class Role extends Model protected with permissions 当有对
  • SimpleXML 返回空数组

    我正在尝试使用 Google Maps API 和 PHP SimpleXML 获取城市的纬度和经度 我尝试这样做 xml simplexml load file http maps googleapis com maps api geoc

随机推荐

  • 如何在python中获取Windows短文件名?

    我需要从我的 python 代码中确定 Windows 短文件名 为此 我可以使用 win32api 找到解决方案 import win32api long file name C Program Files I am a file sho
  • 使 CUDA 内存不足

    我正在尝试训练网络 但我明白了 我将批量大小设置为 300 并收到此错误 但即使我将其减少到 100 我仍然收到此错误 更令人沮丧的是 在 1200 个图像上运行 10 epoch 大约需要 40 分钟 有什么建议吗 错了 我怎样才能加快这
  • Python如何将输入字符串的结果相乘[重复]

    这个问题在这里已经有答案了 我是一名正在尝试学习 Python 的编程初学者 我正在尝试完成以下练习 编写一个程序来提示用户输入小时数和每小时费率 计算总工资 这是我想出的 hours input Enter number of hours
  • Cosmos DB 中的向后分页

    我正在尝试在我的 Vue 前端上使用 c 和 cosmos 实现一个简单的分页系统 但我不确定当用户想要返回时实现分页的最佳方法 为了前进 我使用延续令牌 所以 Cosmos 知道我已经到了哪里 但我不太确定向后工作的最佳方法 或者如果用户
  • yii2 作曲家更新致命错误

    当我更新我的作曲家以添加yii2 solr扩展我的项目时 我遇到如下错误 The yiisoft yii2 composer plugin requires composer plugin api 1 0 0 this WILL break
  • 如何配置两个 JSON 序列化器并根据路由选择正确的一个

    我有一个使用 Net Framework 4 7 的 ASP NET Core Web API 项目 我正在升级到 Net Core 3 1 我升级的原因之一是使用新的 System Text Json 序列化程序 目前 我有一些基于路线的
  • Grails 2.4.3:使用 REST 服务

    如何在 Grails 2 4 3 中使用 RESTful Web 服务 我还需要使用基本身份验证 你可能认为这个问题已经有了一个很好的答案 但我真的很难找到一个 许多答案都向我指出了 Grails Rest 插件的方向 我已经尝试过但无法为
  • 指示 getUserMedia 使用最佳可用相机分辨率

    我正在使用 getUserMedia 函数从网络摄像头录制视频 一切工作正常 除了当我刚刚指定 video true 约束时它仅以 640x480 分辨率录制 如果我设置如下约束 我现在可以在笔记本电脑上获得更好的录音质量 var medi
  • Spring MVC 如何处理多用户

    我使用 Spring 已有 6 个多月了 我无法理解与以下场景相关的底层机制 我有一个 Spring Web 应用程序 现在我在控制器中自动连接了模型 根据 url 匹配 它调用相应的方法 我所有的方法都是单例的 现在 当两个用户同时打开应
  • ActionBarSherlock:getSupportMenuInflator() 未定义

    我在用着动作栏夏洛克并尝试使用以下方法来扩充我的 XML 菜单getSupportMenuInflator 但它给出了一个错误 the method getSupportMenuInflator is undefined for the t
  • 如何创建对象并将其添加到向量中?

    我有一个 C 向量 我希望向量能够容纳可变数量的对象 Visual Studio 2012 给我一个错误 Error type name is not allowed 从这段 C 代码中可以看出 include
  • zend框架FlashMessenger问题

    我正在使用 FlashMessenger 助手来设置消息 但无法使用 getMessages 方法检索消息 它返回 null 这是我的示例代码
  • 从mapbox api获取建筑信息

    有没有办法从 Mapbox API 获取建筑信息 几何形状 高度等 我从这个例子开始 https www mapbox com mapbox gl js example 3d buildings https www mapbox com m
  • 没有历史记录的 Git 存储库

    是否可以拥有一个没有历史记录的 Git 存储库 例如 我工作的地方有一个本地 Git 存储库 我想将最新版本推送到生产服务器 生产服务器上不应存储任何历史记录 我怎样才能做到这一点 你可以看看命令是否git archive http git
  • Jenkins MultiJob - 发送包含内部作业数据的结果电子邮件

    我有一个包含 3 个内部作业的多作业项目 需要按以下顺序执行 Master MultiJob Project Job Phase 1 gt JOB A Phase 2 gt JOB B Phase 2 gt JOB C 当作业 C 结束时
  • Symfony2 覆盖 User.orm.xml

    我需要覆盖这个 Symfony vendor friendsofsymfony user bundle FOS UserBundle Resources config doctrine model User orm xml 文件
  • 更改响应背景颜色的文本颜色

    考虑这个例子 codepen https codepen io anon pen EdwKZb infobox width 110mm height 65mm background image url https i pinimg com
  • 如何在 React 的 recompose 生命周期方法中 setState?

    我在我的 React 项目中使用 recomposehttps github com acdlite recompose https github com acdlite recompose 这是一个很棒的图书馆 我正在使用compose实
  • 使用 XSD.exe 从多个 XSD 架构生成 C# 类

    我有 2 个 XSD 文件 假设一个 XSD 文件 ABC xsd 包含属于 XML 一部分的元素 另一个 XSD 文件假设 XYZ xsd 包含这些元素的定义 现在 在 ABC XSD 保存元素 模式标记以及其他命名空间中 我们也提到了模
  • Laravel 5:违反完整性约束:1062 - 多对多

    我需要以下方面的一些建议 我有两次迁移 就像这样 Schema create plates function Blueprint table table gt increments id table gt integer serial nu