如何在 Laravel Eloquent 中使用带有子查询的内连接

2024-03-15

注意:这是 laravel 5.3

基本上,当用户选择阿拉伯语翻译时,我正在运行查询..完整的 sql 如下所示

select s.ref, t.text as ref_ar 
  FROM stores AS s 
  INNER JOIN 
     (SELECT item, text 
      FROM translator_translations 
      WHERE locale ='ar' 
        AND namespace ='*' 
        AND item like 'store.ref%'
      ) AS t 
   ON substring(s.ref_translation from 14 for 26) = t.item;

在 Laravel 官方文档上没有看到太多关于子查询的文档(有内部联接的东西,但还不够好),而且 SO 的建议似乎很奇怪..建议?

context

这将用作模型内的范围,因此这可以工作,例如:

public function scopeFilterLanguage($query, $language_id)
{
    if (!$language_id || intval($language_id) != LanguageConstants::ARABIC_LANGUAGE_ID) {
        return $query;
    }
    return $query->whereRaw("
    substring(ref_translation from 14 for 26) in 
                                    (select item 
                                     from 
                                     translator_translations 
                                     where 
                                     locale ='ar' and namespace ='*' 
                                     and 
                                     item like 'store.ref%')");

}

但它没有给我我想要的。 (即我必须在本文开头使用更大的版本)


这有效(忽略像这样的动态东西 - > getClassName 等)..基本逻辑工作得很好

public function scopeAddTranslations($query)
{
    $t = new Translation();

    $subq = $t->select('item','text as ref_ar')
              ->where('locale','=','ar')
              ->where('item','like',$this->getClassName().'.ref%');

    $query->leftjoin(\DB::raw('('.$subq->toSql().') as t'), 
      function ($join) use ($subq) { 
          $join->on(\DB::raw('SUBSTRING('.$this->getTable().'.ref_translation 
                              FROM 14 FOR 26)'),
                                 '=',
                                 \DB::raw('t.item'))
                   ->addBinding($subq->getBindings());
            });
    return $query;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Laravel Eloquent 中使用带有子查询的内连接 的相关文章

  • 间歇性 PHP 抽象类错误

    我已经为此奋斗了一段时间 但无法弄清楚 也许其他人也有 或者 Slim PHP Apache 等这里有更深层次的问题 在正常工作几个小时后 我的 Slim 安装将开始给出所有路线均如此 致命错误 类 Slim Collection 包含 1
  • 纯旧 PHP 对象 (POPO) 一词的确切含义是什么?

    我想了解一下波波 我搜索了 popo 发现它代表 Plain Old Php Object 但我不确定 Plain Old Php Object 的确切含义 我想知道什么是 popo 以及在哪里使用它 谢谢 普通旧 在此处插入语言 对象是一
  • PHP-列出一年中一个月中的所有天[重复]

    这个问题在这里已经有答案了 可能的重复 我在 PHP 中有 2 个日期 如何运行 foreach 循环来遍历所有这些日期 https stackoverflow com questions 3207749 i have 2 dates in
  • Doctrine 装置如何覆盖 purger 类?

    From doctrine fixture bundle the console doctrine fixtures load n命令定义如下 https github com doctrine DoctrineFixturesBundle
  • 动态创建和下载Doc文件

    因此 我尝试动态创建 doc 文件并让用户在单击按钮时下载该文件 这些是我找到的用于下载文件的标头 header Content Description File Transfer header Content Type applicati
  • 将具有值的产品属性添加到 Woocommerce 中的产品

    我正在使用此代码添加自定义属性 attributes array array name gt Size options gt array S L XL XXL position gt 1 visible gt 1 variation gt
  • 如何解决 注意:未定义索引:第 21 行 C:\xampp\htdocs\invmgt\manufactured_goods\change.php 中的 id [重复]

    这个问题在这里已经有答案了 我的 PHP 代码有一个问题 显示 注意 未定义的索引 我确信它非常简单 因为我是初学者 所以我不太清楚到底出了什么问题 所以请帮助我 这是代码
  • Postgres 平均值计算忽略 null

    这是我的 postgres 表 name revenue John 100 Will 100 Tom 100 Susan 100 Ben 5 rows 在这里 当我计算平均收入时 它返回 100 这显然不是这种情况 而总和 计数 即 400
  • laravel 5.3 新的 Auth::routes()

    最近开始使用laravel 5 3写博客 但是运行后出现一个问题php artisan make auth 当我运行这个时 它会在我的web php 这是其中的代码 Auth routes Route get home HomeContro
  • postgresql 中的锁定表

    我有一个名为 games 其中包含一个名为 title 该列是唯一的 数据库中使用PostgreSQL 我有一个用户输入表单 允许他插入新的 game in games 桌子 插入新游戏的功能会检查之前输入的游戏是否存在 game 与相同的
  • 为什么 PHPUnit 将一些右大括号显示为未被覆盖?

    我正在使用 PHPUnit 3 6 7 PHP CodeCoverage 1 1 1 和 Xdebug 2 1 2 当我让 PHPUnit 将代码覆盖率统计信息写入 clover 样式的 XML 文件时 它偶尔会显示一个右花括号 表示测试未
  • Laravel Schema Builder 改变存储引擎

    我正在尝试更改表并将其存储引擎更改为InnoDb 当我跑步时php artisan migrate它完成且没有错误 然而 当我检查 Sequel Pro 中的存储引擎时 没有任何变化 public function up Schema ta
  • PHPMailer 验证失败

    当我尝试在工作中使用 Windows Server 2012 上的 PHPMailer 来使用 SMTP 发送报告电子邮件时 出现身份验证失败错误 我在域上使用服务器管理员帐户 我非常确定密码是正确的 检查下面的代码 require PHP
  • 提高 PostgreSQL 1 亿数据左连接查询性能

    我在用Postgresql 9 2 version Windows 7 64 bit RAM 6GB 这是一个Java企业项目 我必须在我的页面中显示订单相关信息 有三个表通过左连接连接在一起 Tables TV HD 389772 行 T
  • Ubuntu 12.04 上的 DeepDive 安装指南

    在拥有以后很多问题 https stackoverflow com questions 22469188 deepdive installation postgresql error安装深潜项目 http deepdive stanford
  • Monolog,如何将 PHP 数组记录到控制台?

    我正在使用浏览器处理程序将消息记录到 JS 控制台 require once vendor autoload php use Monolog Logger use Monolog Handler BrowserConsoleHandler
  • 简单的颜色变化

    我正在创建一个用户界面 用户可以在其中更改页面的颜色值 我想要的是获取分配给其背景颜色的值并将其变亮一定程度 我只是想获得一条亮点线 而不必每次都制作新图像 示例 用户将背景颜色设置为 ECECEC 现在我希望某个元素边框变成 F4F4F4
  • PHP:是否可以从文件内容(字符串)创建 SplFileObject 对象?

    例如 contents file get contents image png 是否可以从 contents 创建 SplFileObject 对象 Thanks php 有一些特殊的流包装器 http www php net manual
  • 一些基本的 PHP 问题 [已关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我只是有一些基本的 php 问题来加深我对学习的理解 但我找不到简单的答案 我有一个 php ajax 应用程序 它生成 mysql
  • 计算包含字母/数字的行数

    我想要实现的目标很简单 但是解释起来有点困难 我不知道在 postgres 中这是否真的可能 我处于相当基础的水平 SELECT FROM WHERE LEFT JOIN ON HAVING 等等基本的东西 我正在尝试计算包含特定字母 数字

随机推荐

  • 如何设置选择标签的选项元素的样式?

    我正在尝试设置一个的风格option in a selectGoogle Chrome 中的下拉菜单 它适用于除 IE9 和 Chrome 之外的所有浏览器 option red background color cc0000 font w
  • Perl regex /o 优化还是错误?

    我正在读perldoc perlre并注意到这句有点有趣的台词 o pretend to optimize your code but actually introduce bugs 我搜索了文档的其余部分 但没有找到对提到的 错误 的另一
  • 如何在 flutter App 上叠加一个小部件?

    我想要一个位于整个应用程序之上的小部件 当我尝试这样做时Overlay of context insert替换该路线后 覆盖层随后会消失 有没有办法在我的应用程序顶部添加一个小部件 即使屏幕稍后弹出 也许存在更优化的方式 但作为一个选项 这
  • 指定输出程序集中 .csdl / .ssdl / .msl 元数据文件的位置

    我有一个 EF 项目 其中包含我已成功使用的数据模型 元数据工件处理 选项设置为 嵌入输出程序集中 由于 edmx 文件位于项目的根文件夹中 EntityConnectionStringBuilder 中使用的元数据字符串设置为 res m
  • 为什么 ::before 伪元素不能与 :visited 伪类一起使用?

    我正在尝试使用伪类和伪元素来设计我的元素 喜欢hover before工作正常但是 visited before不管用 如果链接被访问 我想显示 已看到 但是 visited before不工作 before after box sizin
  • SASS 项目中从右到左 (RTL) 支持

    我想知道是否可以制作一个 mixin 来处理多个参数作为应转换为 rtl 的属性 我想做类似的事情 css selector width 300px height 200px include rtl padding 10px 5px 3px
  • 找不到 Pyspark 模块

    我正在尝试在 Yarn 中执行一个简单的 Pyspark 作业 这是代码 from pyspark import SparkConf SparkContext conf SparkConf setMaster yarn client set
  • Bootstrap 弹出框在 AngularJs ng-repeat 中不起作用

    我有一个国家 地区列表 我正在使用 ng repeat 填充这些国家 地区列表 一切正常 另外 我试图通过使用引导弹出窗口来显示每个国家 地区内的一些其他详细信息 但它似乎不起作用 所以有人可以帮助我吗 网页代码 div class spa
  • PHP 和 mySQL:什么时候使用 htmlentities?

    平台 PHP 和 MySQL 出于实验目的 我自己在自己的网站上尝试了一些 XSS 注入 考虑这种情况 我有表单文本区域输入 由于这是一个文本区域 我可以输入文本和各种 英语 字符 以下是我的观察 A 如果我在将数据插入数据库之前仅应用 s
  • 如何检查 uint8_t 是否作为类型存在,而不是 unsigned char?

    我有两个编译器 一种可以识别 uint8 t GCC ARM EABI 另一种则不能 Renesas M16 标准工具链 Renesas 工具链不兼容 ANSI C 因此您可以丢弃 因此 uint8 t uint16 t 未定义为现有类型
  • 如何搜索 git 存储库历史记录以查找合并错误?

    在我们过去的某个时刻 git 的开发分支被合并了 然而 做出了错误的合并决定 因此一些代码没有进入我们预期的主分支 在最终合并到主分支之前 不同分支进行了多次合并 因此分支和合并历史相当复杂 有没有一种简单的方法来搜索 git 存储库以确定
  • 在 R 中创建默认评论标题模板?

    是否可以在 R 中为所有新脚本创建默认注释标题模板 我通常在所有脚本的顶部包含一些标准信息 并希望自动执行创建评论标题的过程 例如 Project Script purpose Date Author 按照上面 lmo 的建议 我通过编辑位
  • Pandas 滚动窗口 - datetime64[ns] 未实现

    我正在尝试使用 Python Pandas 构建一些图表 我有每秒采样的数据 这是一个示例 Index Time Value 31362 1975 05 07 07 59 18 36 151612 31363 1975 05 07 07 5
  • WEBHDFS REST API 将文件从 Windows 服务器/本地文件夹/桌面复制/移动到 HDFS

    使用 WEBHDFS REST API 调用 我可以将文件从 Windows 计算机 即 Windows 服务器或 Windows 本地文件夹或桌面 传输或复制到 Hadoop HDFS 文件系统吗 如果是 有任何示例命令信息吗 我已经尝试
  • 分解量子态

    我正在寻找采用由位组成的加权经典状态之和组成的任意量子态的算法 如下所示 0000 gt 2 0011 gt 2 0100 gt 2 0111 gt 2 并使用张量积将其分解为更紧凑的形式 如下所示 0 gt x 0 gt 1 gt x 0
  • 循环或重复一组任务直到成功

    我目前有一个包含任务文件的剧本 在该任务文件中 我想检查一个条件 如果该条件的退出代码不等于 0 则应重复任务文件中的所有步骤 我已经尝试了块和循环的一些变体 但我还没有找到一种方法来使它执行我上面描述的操作 目前我有这样的事情 tasks
  • eax如何存储大小大于4字节的返回值?

    EAX在32位平台上用于存储函数的返回值 我想知道如果函数的返回值的大小大于4个字节 eax如何处理 在这种情况下 操作系统可以将返回值保存在堆栈上 并将堆栈地址存储在EAX中 但是操作系统如何判断EAX中存储的值是返回值的地址还是实际上是
  • 单括号和双括号 Numpy 数组的区别?

    这两个 numpy 对象有什么区别 import numpy as np np array 0 0 0 0 np array 0 0 0 0 In 71 np array 0 0 0 0 shape Out 71 1 4 In 72 np
  • 在 [FINE UPLOADER] 中显示以前上传的图像

    我正在使用精细的上传器插件来上传图像 图片上传工作正常 我想做的是 当图像上传后刷新页面时 精细上传器应该显示以前上传的图像 这是我的代码 accordion on shown bs collapse function activeShop
  • 如何在 Laravel Eloquent 中使用带有子查询的内连接

    注意 这是 laravel 5 3 基本上 当用户选择阿拉伯语翻译时 我正在运行查询 完整的 sql 如下所示 select s ref t text as ref ar FROM stores AS s INNER JOIN SELECT