Laravel - 数据透视表上的附加关系

2023-12-13

我有一个带 2 个键的常规数据透视表。但是,我还有第三列,我想在其中存储具有一对多关系的不同密钥。这可能有吗?

Example:

数据透视表:
组织1 |组织2 |关系类型
1 | 2 | 1
1 | 3 | 2

在本例中,组织编号 1 与组织编号 2 存在关系,关系类型为编号 1。组织编号 1 还与组织编号 3 存在关系,关系类型为 2。

现在我的问题是,如何在数据透视表上设置额外的一对多关系?


这里有一个三元关系。您是说组织 A 与组织 B 和关系类型相关。这是一个非常不常见的用例,因为在绝大多数情况下,三元关系可以简化为二元关系。您需要对数据模型进行非常深入的检查,以确定您的案例是否可以简化,但假设不能,这是我的建议。

值得检查一下雄辩的文档特别是在定义自定义中间表模型为了这。请注意,这需要 Laravel 5.4+ 才能工作。

以下应该有效:

class OrganisationOrganisationLink extends Pivot {
    public relationType() {
          return $this->belongsTo(RelationType::class); //You need to specify the foreign key correctly as a 2nd parameter
    }
}

然后在你的原始模型中:

class Organisation extends Model {
    public relatedOrganisation() {
        return $this->belongsToMany(self::class)->using(OrganisationOrganisationLink::class); 
    }
}

然后,在实际使用它时,您可以例如:做:

$organisation = Organisation::with('relatedOrganisation')->first();
echo "Got ".$organisation->name." which relates to "
     .$organisation->relatedOrganisation->first()->name 
     ." with relationship type "       
     $organisation->relatedOrganisation->first()->pivot->relationshipType()->value('name'); 

当然,我假设的字段可能不存在,但希望您能明白。

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

Laravel - 数据透视表上的附加关系 的相关文章

  • 通过php将mp3转换为ogg

    我有一个网站 用户可以上传音乐并将其转换为 mp3 但我需要 mp3 和 ogg 文件支持才能以 html5 播放音乐 那么 有没有可以将mp3转换为ogg的php脚本呢 使用 ffmpeg 您可以直接从 php 脚本执行命令
  • preg_match 所有以@开头的单词?

    我对正则表达式不太确定 所以我不得不问你 如何用 PHP 判断字符串中是否包含以 开头的单词 例如我有一个像 This is for codeworxx 这样的字符串 我很抱歉 但我没有任何起点 希望你能帮忙 谢谢 萨沙 好的 谢谢你的结果
  • 如何通过 PDO 使用密码哈希来使我的代码更安全? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我的代码实际上可以工作 但它一点也不安全 我不想使用 MD5 因为它不是那么安全 我一直在查找密码哈希 但我不确定如何将其合并到我的代
  • PHP 和 DOM 文档

    我有一个关于 DOMDocument 的使用和创建 XML 的问题 我有一个 PHP 程序 加载到 XML 文件中 处理XML的每个节点 行 将其发送到另一个进程 然后该进程返回一个 XML 元素 我获取节点的字符串表示形式 以便可以创建
  • 如何使用 PHP 查找目录中的前 5 个文件?

    如何使用 PHP 列出按字母顺序排序的目录中的前 5 个文件或目录 Using scandir array slice array filter scandir path to dir is file 0 5 The array filte
  • PHP语言问题

    我有一个 php 页面 它将邮件发送到特定电子邮件 其中包含此页面表单中的数据 邮件必须以网站的母语 阿拉伯语 发送 但是当我单击表单上的提交按钮时 收到的邮件一半可读 阿拉伯语 另一部分不可读 符号 我想知道如何解决这个问题并且能够发送邮
  • Symfony 学说错误“DoctrineMigrationsBundle 需要启用 DoctrineBundle。”

    我创建了一个新的 Symfony 项目 并且不断收到此消息 DoctrineMigrationsBundle 需要启用 DoctrineBundle 错误并且无法摆脱它 显然我是这个星球上唯一一个收到此错误的人 因为谷歌并没有太大帮助 在
  • PHP,文本从数据库中回显,没有换行,全部一体

    我的数据库中有一个长文本 从 php mayadmin 来看它看起来很好 但是当我将它回显到页面时 它会丢失所有格式 即没有新行 全部都在一个块中 有任何想法吗 Thanks 可能是因为换行符是 n 并且 html 想要 br 所以使用nl
  • 获取目录中最后修改的文件

    有没有办法只选择目录中的最后一个文件 扩展名jpg png gif 或者我是否必须解析整个目录并使用进行检查filemtime 是的 你必须通读它们 但由于目录访问已被缓存 因此您不必真正担心它 files array merge glob
  • 返回上一页

    我正在使用表格来 评价 页面 此表单将数据 发布 到其他地方的 php 脚本 我只是想在处理表单后显示一个链接 这将使用户返回到上一页 我可以在 php 脚本中使用 javascript 来执行此操作吗 GF 您可以使用链接来调用histo
  • 如何使用额外标记输出 wp_list_categories

    我目前正在使用下面的脚本在无序列表中输出我的所有 WordPress 类别 如何获得带有额外标记的输出 ul ul 例如 ul li Category 1 rsaquo li li Category 2 rsaquo li ul 代替 ul
  • 将自定义参数传递给 Symfony2 中的自定义 ValidationConstraint

    我正在 Symfony2 中创建一个表单 表格只包含一个book字段允许用户在列表中进行选择Books实体 我需要检查是否选择了Book属于Author我的控制器里有 public class MyFormType extends Abst
  • WooCommerce 自定义产品类型选项不隐藏自定义产品选项卡

    我刚刚向我的 WC 管理产品页面添加了自定义产品类型选项 add filter product type options this filter product type options 99 1 public function filte
  • 仅在 Chrome 上我收到此错误:Uncaught TypeError: Illegal constructor [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 当我在 Chrome 上加载 jQuery 时 我会收到此错误 Uncaught TypeError Illegal constr
  • 使用 PHP 创建图表并导出为 PDF

    我正在寻找有关使用 PHP 创建图表的建议 我还希望能够将这些图表导出到 PDF 文档 我目前正在使用谷歌图表 但我不喜欢将我的所有信息发送到谷歌的想法 我更喜欢自己的托管解决方案 我见过很多 Flash 解决方案 但我不知道有什么方法可以
  • 准备好的语句需要 0 个参数,给定 1 个参数..,使用 php 手册示例 [重复]

    这个问题在这里已经有答案了 我直接从 php 手册示例中获取了这个 它几乎与我需要的相同 但我仍然收到此错误 有人可以告诉我我错过了什么吗 stmt link gt prepare SELECT obitBody Photo FROM tn
  • PHP 用星号替换所有字符

    假设我有一个字符串形式的密码 password thisisaplaintextpassword 我怎样才能把它变成下面的样子 password 我想通过电子邮件向用户发送他们的帐户详细信息 但不想发送整个内容 Use 字符串重复 http
  • 如何检查号码是否是巴基斯坦用户的手机号码而不是固定电话号码

    我所做的是从开头删除 92 或 0092 并使用以下代码检查它是否是巴基斯坦人的有效手机号码 if preg match 3 0 4 0 9 number 1 Pakistani mobile number else not a pakis
  • PHP 文件上传帮助

    div align center div 这是我的代码
  • 使用 md5 加密的 PHP 和 Mysql 查询出现问题

    我使用普通的 php mysql 插入查询并使用 md5 加密密码 这是插入查询 sql mysql query INSERT INTO user username password role approved values usernam

随机推荐

  • 计算天、小时和分钟的时间差

    更新 我正在更新问题以反映完整的解决方案 使用下面提到的 time diff gem Brett 以下代码有效 code cur time Time now strftime Y m d H M Time diff Time parse 2
  • 如何精确匹配整个文档?

    精确匹配子文档很容易 但是有没有办法精确匹配集合中的整个文档 我有很多包含相似数据的文档 我只需要精确匹配 不需要额外的数据 使用负 exists 对我不起作用 因为我事先不知道所有可能的字段 我认为这不可能完全实现 但一个可能的解决方案是
  • 日志在生产中无法正常工作,作业延迟

    我遇到了一些奇怪的问题 我的delayed jobs 在生产中失败 最后我将范围缩小到记录器 如果我注释掉我的日志函数调用 一切都会正常 但是 如果我尝试记录 我会在delayed job处理程序中得到这个 ruby struct Dela
  • 通用静态字段初始化

    我只是对以下代码感到好奇 public static class Container
  • Swift 4 中的 UIButton 数组

    我用 UIButtons 在 UiKit 中制作了一系列复选框 IBOutlet weak var Box1 UIButton IBOutlet weak var Box2 UIButton IBOutlet weak var Box3 U
  • 如何摆脱 Chrome 控制台中的 [VM] 行?

    现在我可以在我的 chrome 开发者工具中看到有关 VM 的信息 如下所示 我找到了一些解决方案 例如将 暂停按钮 设为灰色 但是 它在我的开发工具中已经是灰色的 这对我来说也不起作用 如何消除控制台中的虚拟机消息 感谢您阅读我的问题 右
  • 当我尝试启动 jetty 时,为什么 lambda 表达式会破坏 guice 错误处理?

    我在尝试启动 jetty 时遇到以下问题 出现以下异常 Execution default test of goal org apache maven plugins maven surefire plugin 2 17 test fail
  • Xcode 中的 EXC_BAD_ACCESS 中断?

    我对 iPhone 开发和 Xcode 不太熟悉 不知道如何开始排除故障EXC BAD ACCESS信号 如何让 Xcode 在导致错误的确切行处中断 我似乎无法让 Xcode 在导致问题的线路上停止 但我确实在调试控制台中看到以下几行 1
  • Android 状态栏动画

    我是 Android 新手 我想做一个电池充电动画例如 在手机中 屏幕右上角的小图标在充电时会上下移动 并在当前电池百分比处停止 到目前为止 在我的代码中 我已经能够让它移动 但它永远不会停止 我想要的是动画在未充电时停止或以当前电池百分比
  • React refs 如何使用,何时使用?

    您好 感谢您阅读这个问题 我已经学习 React 几个星期了 我很难理解 refs 如何获取 React 的实例并将其放入 JS 变量中 例如 我们可以讨论文档的示例 class CustomTextInput extends React
  • 如何在Intellij Idea上导入滑动菜单?

    我正在使用intellij idea 如您所知 导入滑动菜单当你在 Eclipse 上运行时 将 lib 添加到你的全新项目中是很痛苦的 我做过一次 但我不再使用 intellij idea 我想知道是否有人知道如何在使用 Intellij
  • 在 R 中以全球视角绘制地理数据

    如何 是否可以在具有 d3 透视视图的地球上绘制地理数据 例如多边形层 类似于这个图形在维基百科上 我想要一个解决方案sf and ggplot大多数 但欢迎任何解决方案 我问这个主要是出于好奇 但由于我经常看到这样的图形 我想这个问题可能
  • Google API V3 多个信息窗口以及点击关闭

    我想出了如何使用多个带有信息窗口的标记 但当您单击另一个标记时它们不会关闭 我相信这是因为我正在为每个标记创建一个新的信息窗口 任何帮助将不胜感激
  • 显示自定义多个引脚显示位置错误的引脚

    这个问题已经困扰我好几个星期了 我有一个标签栏应用程序 在一个选项卡上 我输入点 在另一个选项卡上 这些点显示在地图上 引脚应该根据点的类型而不同 我面临的问题是 每次我从一个选项卡切换到另一个选项卡时 图钉图像都会从应有的图像更改为其他图
  • 在perl中获取数组中的多个值

    我正在编写一个 prel 程序 其中有一个包含以下模式的输入文件 FIELDS 1 2 3 4 OR FIELDS 1 10 3 A 11 10 7 D 9 10 11 A 值的数量不是恒定的 而是以 4 个为一组 可能有 4 8 12 1
  • Django - TemplateView 和 POST

    我有一个由 TemplateView 生成并包含 POST 表单的页面 我如何将此表单与 TemplateView 一起使用 有一个与我的代码类似的示例 class ProjetMixin object def get context da
  • 在 XML 上应用 XSLT v.2

    我编写了一个 XSLT 2 0 版本文件 当它应用于 XML 文件时 出现以下错误 ERROR Unsupported XSL element http www w3 org 1999 XSL Transform sequence 这是Ja
  • Firebase存储读取安全规则似乎没有任何效果

    我正在努力为 Firebase 存储设置安全规则 但读取规则似乎没有任何效果 rules version 2 service firebase storage match b bucket o match allPaths allow re
  • 防止在门控签入构建中释放触发器

    如何停止不产生任何工件的门控签入构建上的发布触发器 我有一个启用了门控签入的构建定义 在发布和发布工件步骤中 我将条件设置如下 ne 变量 Build Reason CheckInShelveset 这意味着 如果构建是由门控签入触发的 则
  • Laravel - 数据透视表上的附加关系

    我有一个带 2 个键的常规数据透视表 但是 我还有第三列 我想在其中存储具有一对多关系的不同密钥 这可能有吗 Example 数据透视表 组织1 组织2 关系类型1 2 11 3 2 在本例中 组织编号 1 与组织编号 2 存在关系 关系类