获取额外数据透视表列的值 laravel

2024-01-28

我有一个phone_models、phone_problems 和一个phone_model_phone_problem 数据透视表。数据透视表有一个额外的列“价格”。

手机型号:

class PhoneModel extends \Eloquent
{
    public function problems()
    {
        return $this->belongsToMany('RL\Phones\Entities\PhoneProblem')->withPivot('price');
    }
}

电话问题:

class PhoneProblem extends \Eloquent
{
    public function models()
    {
        return $this->belongsToMany('PhoneModel')->withPivot('price');
    }
}

我想做的是获取具有特定问题的特定手机的价格。

这就是我现在的方式,但我觉得 Laravel 有一个内置的 Eloquent 功能,我找不到以更简单的方式做到这一点:

$model = $this->phoneService->getModelFromSlug($model_slug);
$problem = $this->phoneService->getProblemFromSlug($problem_slug);

这一切所做的就是从它们的 slug 中选择特定的模型和问题。

然后我所做的就是利用这些凭证我得到的价格如下:

$row = DB::table('phone_model_phone_problem')
->where('phone_model_id', '=', $model->id)
->where('phone_problem', '=', $problem->id)
->first();

所以现在我可以得到这样的价格$row->price但我觉得需要一种更简单、更“Laravel”的方式来做到这一点。


当使用 Eloquent 的多对多关系时,生成的模型会自动获得pivot分配的属性。通过该属性,您可以访问数据透视表列。 尽管默认情况下枢轴对象中只有键。要将列也包含在其中,您需要在定义关系时指定它们:

return $this->belongsToMany('Role')->withPivot('foo', 'bar');

官方文档 http://laravel.com/docs/4.2/eloquent#working-with-pivot-tables

如果您需要更多帮助来配置与 Eloquent 的关系,请告诉我。

Edit

要查询价格,请执行以下操作

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

获取额外数据透视表列的值 laravel 的相关文章

  • cakephp 1.1 与 php 5.3

    我刚刚从 php 5 1 升级到 5 3 之前在我的服务器上使用 cakephp 1 1 自从升级 或者可能更早 我不确定 以来 我收到以下错误 任何人都可以透露一些信息 Deprecated Assigning the return va
  • 我应该如何审核 MySQL 表中的更改(使用 MySQL 4)?

    我被要求审核 MySQL 表中的任何 所有更改 有谁知道有什么工具可以帮助我做到这一点 还是我需要编写自己的解决方案 如果我编写自己的审计 我最初的想法是制作一个单独的表并在 PHP 代码中构建一系列更改 类似 fieldname1 gt
  • 如何从 MySQL 中的布尔类型返回不同的字符串?

    如果我在 MySql 中将一列设置为布尔值 则查询将返回以下值 0 or 1 是否可以做这样的事情 SELECT bool value AS yes OR no 我的意思是 根据真假返回两个不同的字符串 SELECT CASE WHEN b
  • json_encode 创建格式错误的 JSON 数据?

    我有一个 codeigniter 应用程序将一些数据从数据库返回到视图 我正在尝试将其作为 json 数据发送回来 问题是返回的数据格式错误 它看起来像这样 2 5 Admin1 2 10 Admin2 当我在 jsonlint com 上
  • 如何销毁一个物体?

    据我所知 很少 有两种方法 var new object Then Method 1 Set to null var null Method 2 Unset unset var 还有其他更好的方法吗 我在这里吹毛求疵吗 您正在寻找unset
  • 拉拉维尔; “SQLSTATE[HY000] [2002] 连接被拒绝”

    我在 OSX 主机上设置了 homestead 2 0 并使用 Sequel Pro 我可以进行迁移并确认数据已在Sequel Pro中迁移 因此看起来数据库连接没有问题 但是 一旦我尝试从 Laravel 4 2 应用程序获取数据 它就无
  • 从单个 javascript 函数向两个不同的 PHP 脚本发送两个 Ajax 请求

    是否可以同时向两个或多个 Php 脚本发送 Ajax 请求 我知道这可以串行实现 从 1 获取响应 然后从另一个获取响应 但我想知道是否可以同时实现 请协助我使用以下代码 function calShowUpload if http rea
  • 如何在 Laravel Mix 中将公共路径更改为包含下划线的路径?

    Laravel 5 4 中引入了 Mix 来编译资产并维护资产管道 Mix 默认为您的公共目录被命名public 在许多情况下 包括我的 我的公共目录被称为其他名称 就我而言 是public html 如何更改资源编译到的公共目录 我尝试过
  • Lumen 微框架 => php artisan key:generate

    我正在尝试 PHP 微框架 Lumen 来自 Laravel 我的第一步就是调查 env example文件并复制一份以供我使用 env文件 就像 Laravel 中一样 有一个变量 APP KEY 现在我尝试了简单的命令php artis
  • 如何在PHP中将图像从内存上传到AWS S3?

    所以我目前有一个使用 AWS S3 上传图像的上传系统 这是代码 Upload image to S3 s3 Aws S3 S3Client factory array key gt mykey secret gt myskey try s
  • 返回上一页

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

    我目前正在使用下面的脚本在无序列表中输出我的所有 WordPress 类别 如何获得带有额外标记的输出 ul ul 例如 ul li Category 1 rsaquo li li Category 2 rsaquo li ul 代替 ul
  • 从文本文件 PHP 读取数据

    我只是想知道如何在 php 中读取文本文件 我想让它显示文本文件中的最后 200 个条目 每个条目都在一个新行上 Like John White Jane Does John Does Someones Name 等等 Thanks Use
  • 将单独的月、日和年值转换为时间戳

    我有月份值 1 12 日期值 1 31 和年份值 2010 2011 2012 我还有一个小时值和一个分钟值 我怎样才能把这个给strtotime 它可以以某种方式将其转换为时间戳吗 当您已经知道年月和日期时 为什么将字符串转换为日期 us
  • 如何编写可以补偿拼写错误数据的 MySQL 搜索?

    有没有什么方法可以编写一个 MySQL 搜索来弥补用户在拼写等方面的错误 作为随机示例 有人可能会输入 电子邮件受保护 cdn cgi l email protection代替 电子邮件受保护 cdn cgi l email protect
  • 如何比较行内的重叠值?

    我似乎对这个 SQL 查询有问题 SELECT FROM appts WHERE timeStart gt timeStart AND timeEnd lt timeEnd AND dayappt boatdate 时间格式为军用时间 物流
  • MySQL:所有表都正常,但仍然错误 1577(发现事件调度程序使用的系统表已损坏)

    从我的系统日志 mysql 1663 ERROR 1577 HY000 at line 1 Cannot proceed because system tables used by Event Scheduler were found da
  • Slim 3 - 斜杠作为路由参数的一部分

    我需要使用可以包含斜杠 的参数来编写 URL 例如 经典的 hello username 路线 默认情况下 hello Fabien将匹配此路线 但不匹配 hello Fabien Kris 我想问你如何在 Slim 3 框架中做到这一点
  • 如何在php中关闭夏令时

    我有这行代码将夏令时设置为 打开 将其设置为 关闭 的正确方法是什么 is daylight saving On rcmail config dst active bool date I date I 这是一个大写字母 i 当当前默认时区
  • 准备好的语句需要 0 个参数,给定 1 个参数..,使用 php 手册示例 [重复]

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

随机推荐

  • Matlab中复变量的曲线拟合

    我想求解下图所示的方程组 矩阵系统 其中矩阵 A 的分量是复数 角度 theta 从0 to 2 pi有 m 个分区 并且n 9 已知值z x iy 假设矩阵 z 的 x 和 y 为 z 0 1 0148 0 1736 0 9848 0 3
  • 安装模拟器卡在“准备虚拟机”上

    我已经成功安装了 Android 版 VS Emulator 但是当我尝试安装设备时 它卡在 准备虚拟机 上 在此之前 Android VS 模拟器要求在提升模式下运行 显示以下问题 我还附上了 Hyper v 管理器中虚拟交换机的屏幕截图
  • 从 Windows Phone 8 设备检索故障转储

    有没有办法在开发期间从 Windows Phone 8 中获取故障转储 我正在寻找一个与普通 Win32 应用程序崩溃时类似的转储文件 或者类似于崩溃时 iOS 设备上保存的内容 以便稍后进行调查 我的问题具体是关于在崩溃后以某种方式从手机
  • App Engine 上的 Flask-SQLAlchemy 使用以下命令连接到 Cloud Compute Engine 上的 MSSQL 数据库

    我对整个 GCP 非常陌生 我需要为客户的项目部署 Flask 应用程序 考虑到 Google 提供的所有文档 部署应用程序非常简单 而且由于使用灵活的应用程序引擎似乎是最简单的方法 因此我正在尝试使用它 我遇到的问题是尝试连接到在计算引擎
  • getaddrinfo:节点名称或服务名称已提供,或未知

    我有一个 Ruby on Rails 应用程序 正在运行 Mac OS X 10 6 的计算机上部署 出现问题的代码是由delayed job 运行的 仅当通过delayed job运行时才会出现该问题 如果我在控制台中运行它 rails
  • 消除重复的多边形州/国家/地区共享边界

    我正在使用 GEOJSON 绘制带有传单的世界地图 并用虚线绘制边界 如下图所示 The problem I am having is that the line is not shared by two states if two sta
  • 使用 Typescript 导入 Electron 类

    如何将 Electron 类导入 Typescript 文件 以便智能感知正常运行 例如 我想把这个 var BrowserWindow require browser window var app require app app on r
  • 在单独的进程上运行 Goroutines(多处理)

    我目前有一个 MQTT 代码 可以订阅主题 打印收到的消息 然后向新主题发布进一步的指令 这订阅 打印在一个 Goroutine 中完成 并且出版是在另一个 Goroutine 中完成的 这是我的代码 var wg pg sync Wait
  • .net 中的数据类型和 C# 中的数据类型哪一种更快? [复制]

    这个问题在这里已经有答案了 大家好 首先我很抱歉 因为我的母语不是英语 我想了解 C 数据类型和 net 数据类型哪一种更快 我尝试通过下面的代码来理解 我认为 net 数据类型更快 这是正确的吗 我在 x86 和 x64 平台上测试了这段
  • 在Spring中正确使用Log4jConfigurer

    在我们的应用程序中 我们决定将 log4j 配置文件命名为自定义名称 以避免无意中从另一个 jar 加载默认文件 为了配置它 我们使用org springframework util Log4jConfigurer指定 log4j 位置
  • 在 Windows Phone 8.1 中以编程方式检测重新启动

    我有一个 WP 8 1 运行时 它启动了DeviceUseTrigger后台任务 问题是 每当手机重新启动时 该任务显然会取消 但任务注册仍然存在 所以当我下次启动我的应用程序时后台任务appears在现实没有跑步的情况下跑步 我想要某种方
  • 延迟脚本加载

    所以如果我有以下内容 我只是想延迟使用 settimeout 调用该文件的执行 我该怎么做 很奇怪的是 我在一个简单的函数上使用 settimeout 没有问题 但我在这个看似更简单的情况下有点困惑 我的想法是我可以创建一个在 x 时间后调
  • Apache Camel Java DSL 在正文中添加换行符

    因此 我在 Java DSL 中设置了一个 netty4 套接字路由 如下所示 Override public void configure throws Exception String dailyDataUri SOCKET daily
  • AWS 工作层 cron - 服务器错误 #500 - “发布 http 1.1 500 AWS aws-sqsd/2.0”

    我正在尝试在 Elastic Beanstalk 上设置一个 cronjob 任务正在安排中 出于测试目的 它应该每分钟运行一次 但是它不起作用 这是一个 Django 应用程序 该应用程序在两个环境中运行 一个是工作环境 另一个是 托管
  • Flutter - 检测充满其他小部件的屏幕上的点击

    我正在尝试检测屏幕上的点击 我尝试过使用的多种变体GestureDetector但这只会导致应用程序检测到点击子元素 and 不是屏幕 这是代码 class QQHome extends StatelessWidget override W
  • 如何平滑徒手绘制的 SVG 路径?

    我正在寻找一种解决方案 将由大量 auf LineTo 段组成的手绘 用户绘制的 SVG 路径转换为更平滑的路径 首选语言是 JavaScript 但欢迎任何建议 首先 我建议使用一个好的图形库 例如raphael 它将简化实际使用 jav
  • iOS 8 横向:键盘无法正确显示

    我有一个为 iOS8 编译的应用程序 该应用程序在项目设置中设置为仅允许纵向 根据设计 应用程序的视图不会旋转为横向 在 iOS7 中 当您旋转设备以横向时 键盘不会旋转 这是我想要的行为 但是 在 iOS8 中 当您将设备旋转到横向时 键
  • 使用 RecyclerView 适配器更新数据的最佳方法[重复]

    这个问题在这里已经有答案了 当我必须使用经典适配器时ListView https developer android com guide topics ui layout listview html 我在 ListView 中更新数据 如下
  • inno-setup 脚本中的可选组件和类型

    我创建了以下 InnoSetup 脚本 用于添加可选组件 遵循此 StackOverflow 答案的建议 Inno Setup 正确使用 类型 组件 和 任务 https stackoverflow com questions 889082
  • 获取额外数据透视表列的值 laravel

    我有一个phone models phone problems 和一个phone model phone problem 数据透视表 数据透视表有一个额外的列 价格 手机型号 class PhoneModel extends Eloquen