Laravel 5. 使用 USING 运算符

2023-12-26

我尝试了很长时间才找到它,我不敢相信Laravel没有这个功能。

所以,我可以写:

select * from a join b where a.id = b.id

或者更漂亮:

select * from a join b using(id)

第一种情况对于 Laravel 来说很简单:

$query->leftJoin('b', 'a.id', '=', 'b.id')

但是第二种情况怎么写呢?我希望它应该简单而简短,例如:

$query->joinUsing('b', 'id')

但没有这样的方法,我也找不到。

PS:答案可能很简单,只是很难通过“使用”这个词找到,因为它无处不在。

UPDATE

我将更深入地了解源代码,尝试创建作用域或传递要加入的函数,但即使在该函数内部,我也无法使用此 $query 执行任何操作。例子:

public function scopeJoinUsing($query, $table, $field) {
    sql($query->join(\DB::raw("USING(`{$field}`)")));
    // return 
    // inner join `b` on USING(`id`)  ``
    // yes, with "on" and with empty quotes
    sql($query->addSelect(\DB::raw("USING(`{$field}`)")));
    // return 
    // inner join `b` USING(`id`) 
    // but in fields place, before "FROM", which is very logic :)
}

所以即使忘记了scope,我也不能在DB::raw()中做到这一点,所以这是不可能的......我第一次看到Laravel中不可能的事情。


所以,答案是——不可能。

Laravel 不支持这个功能,这真是令人难过。

我在 Laravel 源代码中修复了它,我的 PULL REQUEST 在这里 -https://github.com/laravel/framework/pull/12773 https://github.com/laravel/framework/pull/12773

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

Laravel 5. 使用 USING 运算符 的相关文章

  • PHP DateTime::修改加减月份

    我一直在与DateTime class http www php net manual en class datetime php最近在添加月份时遇到了我认为是一个错误 经过一番研究后 看来这不是一个错误 而是按预期工作 根据查到的文档he
  • Php Define() 命名空间内的常量说明

    正如标题所示 我真的很想澄清这一点 我读过一些关于这个主题的文章和帖子 但有些东西不适合我 我会补充一点 我对 Php 有点陌生 好吧 这就是我想了解的 namespace Information define ROOT URL infor
  • 创建动态子域

    自从我考虑一些网站正在实施的此功能以来已经有一段时间了 它看起来非常成功 类似的网站tumblr com blogger com wordpress com允许用户使用简单的 HTML PHP 表单从网站内注册新的子域名 以我目前对 PHP
  • PHP 将页面生成的标题放入

    我们在网站的所有页面中包含一个 header php 文件 因此 我们可以在 header php 文件中放置一个标题 该标题将应用于整个站点 或者在每个页面中添加一个自定义标题以更具描述性 问题是 这样做时 标题将位于 head 标签之外
  • 如何让 PagerDefault 查询与 Drupal 7 一起正常工作?

    我正在运行以下代码 query db select taxonomy index ti gt fields ti array nid gt condition ti tid term gt tid gt condition n status
  • PHP:会话 |无法解码会话对象

    我尝试将电子商务功能添加到遗留项目中 因此我仍然需要旧的会话处理程序 我使用 PHP v7 1 14 和 Session2DB https github com voku session2db tree 4 0 0 https github
  • 递归BBCode解析

    我正在尝试解析脚本中的 BBCode 现在 它可以无缝工作 直到我尝试缩进不仅仅是粗体或下划线的 BBCode 例如剧透 网址 字体大小等 然后它就会搞砸 这是我的代码 function parse bbcode text global d
  • Laravel 资源策略始终为 false

    我试图允许用户在 Laravel 5 4 中查看自己的个人资料 用户策略 php public function view User authUser user return true 在 AuthServiceProvider php 中
  • htaccess隐藏php扩展时出错,只隐藏html

    我在使用 htaccess 隐藏网站上的 php 扩展时遇到问题 我看到很多网站试图修复它 但没有任何结果 但只有 html 扩展名对我来说是隐藏的 在我的 htaccess 上 我用这个来隐藏扩展 它就在错误页面之后 这是我的 htacc
  • 致命错误:调用未定义的方法 mysqli_stmt::query()

    为什么我会收到以下错误 致命错误 调用未定义的方法 mysqli stmt query mysqli new mysqli localhost or die mysqli gt connect error function checklog
  • 如何在没有数据库的情况下创建AJAX分页?

    是否可以在没有 MySQL 帮助的情况下获取 AJAX 分页页面 难道我不能只添加一个包含我需要显示的文本和标记的 PHP 文件 然后通过单击页码将该内容提供给用户吗 那么可以用纯 jQuery 和 PHP 来实现吗 您会使用什么代码方法来
  • PDO::PARAM_FLOAT 不存在,为什么?

    我想知道为什么 PDO PARAM FLOAT 不存在以及什么可以替代它 没有 可能是由于隐含的舍入问题 只需使用PDO PARAM STR并使用将浮点数转换为字符串strval float or string float
  • 将程序存储在 phpMyAdmin 中

    我必须将存储过程添加到 MySQL 数据库 问题是托管提供php我的管理员来管理数据库 我在网上搜索了一下 想法是运行创建程序的MySQL本机语句 但由于程序的代码通常可能有 我们必须更改 MySQL 中的分隔符 php我的管理员没有这个选
  • php 删除特定文件夹及其所有内容

    我正在使用 php 删除包含已删除帖子图像的文件夹 我正在使用下面的代码 这是我在网上找到的并且做得很好 我想知道当一个文件夹中有其他文件夹时 如何只删除其中的特定文件夹 当我使用下面的代码时 如何才能做到这一点 使用 dev images
  • PHP 对象创建和内存使用

    一个基本的虚拟类 class foo var bar 0 function foo function boo echo memory get usage echo n foo new foo echo memory get usage ec
  • JQuery 验证不起作用

    我有一种表单 其中一个输入类型的值为 名字 但这可以在 onfocus 函数上更改我想验证此输入字段 如果它为空白或 名字 我有两个 jQuery 文件jquery 1 4 2 min js jquery validate pack js
  • 下载表格 - 选择文件合并到 Zip 中

    我希望创建一个表单 用户可以从手册列表中进行选择 总共10个 他们可能只想下载 3 份小册子 或 6 份 或 1 份 或 9 份小册子 但想法是他们选择所需的小册子 然后用脚本组合一个包含所需小册子的 zip 文件 任何人都可以提出任何建议
  • 在 PHP 中创建关联数组

    我有一个多维数组 shop array array appn1 pub1 pub2 pub3 array appn2 pub1 array appn3 pub1 pub2 每个数组中的第一项是申请编号每个数组中的其余部分是出版号 我得到每个
  • ZF2 - 从路线生成 URL

    我无法弄清楚在 zend 2 中从我想要的任何地方生成 Url 我得到了动作和控制器 所以我尝试这个 this gt url myControllerName array action gt myActionName 但这返回一个对象 我只
  • 如何确定函数是否不返回任何内容?

    有没有办法在 PHP 中使用反射或其他方法来做到这一点 function a return null function b a a null b b null 如果您没有显式返回某些内容 则函数将返回null默认情况下 这就是 PHP 中函

随机推荐

  • 如何在jquery中将日期和时间转换为timeago格式

    我正在尝试显示 Facebook 新闻源并在移动网络应用程序上显示它们 它工作正常 但问题是它在移动网络浏览器上不以 timeago 格式 即 2 天前 显示时间 但另一方面它在桌面上正确显示 日期和时间的格式为 2011 09 13T11
  • React Swiper Js 自动播放不会使雨刮器自动滑动

    我在 React 中使用这个滑动器 https swiperjs com react https swiperjs com react 我试图使其 自动播放 但它不会自动滑动 这是我尝试过的 https swiperjs com get s
  • Ruby Http Post 参数

    如何将帖子参数添加到我现在拥有的内容中 toSend nonce gt Time now to i command gt returnCompleteBalances to json uri URI parse https poloniex
  • 通知是什么:资源 id#9? [复制]

    这个问题在这里已经有答案了 可能的重复 我如何从 PHP 中的 MySql 响应中 回显 资源 id 6 https stackoverflow com questions 4290108 how do i echo a resource
  • Coq:将信息保存在匹配语句中

    我正在构建一个递归函数match在清单上l 在里面cons分支我需要使用以下信息l cons a l 为了证明递归函数终止 但是 当我使用match l信息丢失 我该如何使用match保留信息 这是函数 drop and drop lemm
  • 从存储库 Databricks 中的另一个笔记本运行笔记本

    我有一个笔记本 其功能位于存储库文件夹中 我试图在另一个笔记本中运行它 通常我可以这样运行它 run Users name project file name 因此 我将这两个文件 function notebook processed n
  • 是否可以执行 If Else 或 Switch 语句 Firestore 规则

    是否可以在 firestore 规则中执行 Switch 语句或 if else 我试图寻找它 但没有找到答案 我尝试的是 function getTier return get users request auth uid data us
  • Synology 网站简单的“hello world”快速入门使用 python、flask 和 uwsgi

    我注意到 Synology 的本机网站使用 uwsgi 框架 最近添加了对 python 脚本的支持 我想知道是否有人可以帮我找出一个简单的 hello world 示例 我不清楚 uwsgi 文件中应放入什么内容 我按照 uwsgi 文档
  • 这种锁定技术的名称是什么?

    我有一个巨大的 Trove 地图和一个需要从多个线程经常调用的方法 大多数时候这个方法会返回true 线程正在进行大量的数字运算 我注意到由于以下方法而存在一些争用 这只是一个示例 我的实际代码有点不同 synchronized boole
  • Jenkins 构建流程与工作流程(管道)插件

    我注意到 Jenkins 至少 有两个编排选项 构建流程 https wiki jenkins ci org display JENKINS Build Flow Plugin Workflow https github com jenki
  • float 变量不满足条件 (C)

    我试图让用户输入 1 00000 到 0 00001 之间的数字 而边缘不包含在浮点变量中 我可以假设用户在点后输入的数字不超过 5 个 现在 这是我写的 printf Enter required Leibniz gap Between
  • 是否可以更改代理的目标?

    我有一个实现 XMLHttpRequest 接口的类 取决于传递给的 URLopen 我可以确定是使用默认的 XMLHttpRequest 还是我的自定义实现 我的想法是使用代理来执行此操作 let xhr new XHRProxy xhr
  • 仅覆盖分区 Spark 数据集中的部分分区

    我们如何覆盖分区数据集 但只覆盖我们要更改的分区 例如 重新计算上周的日常工作 并且只覆盖上周的数据 Spark 的默认行为是覆盖整个表 即使只写入某些分区 从 Spark 2 3 0 开始 这是覆盖表时的一个选项 要覆盖它 您需要设置新的
  • “pip install --user ...”的目的是什么?

    From pip install help user Install to the Python user install directory for your platform Typically local or APPDATA Pyt
  • 测试元素是否已经有 jQuery datepicker

    我有一个包含许多输入元素的表单 有些是已附加 jQuery UI 日期选择器的日期字段 someElement mask 9 9 99 9999 datepicker showOn button buttonText Click here
  • 如何在 Jetty 9 中访问实例化的 WebSocket?

    这可能是显而易见的 但我对这种范例很陌生 我创建一个 Jetty 服务器并注册我的 websocket 类 如下所示 Server server new Server 8080 WebSocketHandler wsHandler new
  • Postgres 中的运算符 ~<~

    Originally part of this question https stackoverflow com questions 35629454 order by with diacritic in postgres but it w
  • 理解DoFactory设计模式的UML——装饰器

    我试图理解下面链接中描述装饰器模式的 UML 图 http www dofactory com Patterns PatternDecorator aspx http www dofactory com Patterns PatternDe
  • 在根文件夹下获取 javascript 时出现 403 禁止错误

    我的根文件夹下有 javascripts 文件夹 到目前为止一切正常 突然 脚本文件夹下的所有 javascript 开始出现以下错误 我今天所做的唯一更改是 在网站根目录下部署了一些文件 这些文件是asp文件 我根本没有将任何文件部署到脚
  • Laravel 5. 使用 USING 运算符

    我尝试了很长时间才找到它 我不敢相信Laravel没有这个功能 所以 我可以写 select from a join b where a id b id 或者更漂亮 select from a join b using id 第一种情况对于