Laravel Eloquent 选择 CASE?

2023-12-30

有没有在 PHP 和 Laravel Eloquent 方面有经验的人可以帮助我解决这个问题?我试图在 raw() 方法中注入一个 CASE...WHEN..END... 。似乎完全被忽视了。现有的文档还没有。我尝试了几种不同的方法,但都没有成功。我正在努力实现这一目标:

SELECT shares.id, ..., 
   CASE WHEN users.id = <CurrentUser> THEN 1 ELSE 0 END AS is_user, 
   ...
FROM <table>
...

源代码如下:

$shares = Share::where('shares.status', '=', SHARE_STATUS_APPROVED)
                    ->where('shares.deleted', '=', '0')
                    ->where('locations.lat', '<=', $nelat)
                    ->where('locations.lat', '>=', $swlat)
                    ->where('locations.lng', '>=', $nelng)
                    ->where('locations.lng', '<=',  $swlng)
                    ->where('users.id', '=',  $user)
                    ->orWhere('shares.connected_user_id', '=',  $user)
                    ->join('users', 'shares.user_id', '=', 'users.id')
                    ->join('locations', 'locations.id', '=', 'users.location_id')
                    ->join('provinces', 'provinces.id', '=', 'locations.province_id')
                    ->join('countries', 'countries.id', '=', 'locations.country_id')
                    ->select('shares.id AS share_id', 'users.id AS user_id', 'shares.connected_user_id', 'shares.original_language_id', 'shares.image',
                        'users.first_name', 'users.last_name', 'users.email',
                        'locations.city', 'provinces.name', 'countries.code',
                        'locations.lat', 'locations.lng',
                        'shares.created_at')
                    ->raw('(CASE WHEN users.id = ' . $user . ' THEN 1 ELSE 0 END) AS is_user')
                    ->orderBy('shares.created_at', 'desc')
                    ->orderBy('users.id', 'asc')
                    ->orderBy('shares.connected_user_id', 'asc')
                    ->get();

移动你的raw()调用里面的SELECT陈述:

->select('shares.id AS share_id', 'users.id AS user_id', 'shares.connected_user_id',    
  'shares.original_language_id', 'shares.image',
  'users.first_name', 'users.last_name', 'users.email',
  'locations.city', 'provinces.name', 'countries.code',
  'locations.lat', 'locations.lng',
  'shares.created_at',
  DB::raw('(CASE WHEN users.id = ' . $user . ' THEN 1 ELSE 0 END) AS is_user')
  )
->orderBy('shares.created_at', 'desc')

From: https://laravel.com/docs/5.4/queries#raw-expressions https://laravel.com/docs/5.4/queries#raw-expressions

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

Laravel Eloquent 选择 CASE? 的相关文章

  • Laravel - 保存在存储文件夹中的图像不向用户显示

    我有这段代码可以将图像保存在 storage app uploads 文件夹中 image main Image where property id id gt get file request gt file file destinati
  • SQL:如何在按部分分组的查询中使用子查询?

    如何在按部分分组的查询中使用子查询 我使用 SQL Server 2008 R2 和 Delphi 2010 我收到此错误 Cannot perform an aggregate function on an expression cont
  • 不带 GROUP BY 的聚合查询

    这个查询似乎在我的旧机器上完美运行 但是 在我的 MySQL 5 7 14 和 PHP 5 6 25 的新机器上 它会抛出错误 致命错误 未捕获异常 PDOException 并带有消息 SQLSTATE 42000 语法错误或访问冲突 1
  • Postgresql 一张表的多个计数

    我想从表中的两列中获得这些列中值的统一计数 例如 两列是 表 报告 type place one home two school three work four cafe five friends six mall one work one
  • T-SQL:用最新的非空值替换 NULL 的最佳方法?

    假设我有这张表 id value 1 5 2 4 3 1 4 NULL 5 NULL 6 14 7 NULL 8 0 9 3 10 NULL 我想编写一个查询来替换任何NULL值与表中最后一个不为空的值在那一栏里 我想要这个结果 id va
  • 加密数据库字段的好方法?

    我被要求加密数据库中的各种数据库字段 问题是这些字段在读取后需要解密 我在用着Django and SQL Server 2005 有什么好主意吗 See 在 SQL Server 2005 数据库中使用对称加密 https web arc
  • 根据日期顺序排名

    我的数据如下 Heading Date A 2009 02 01 B 2009 02 03 c 2009 02 05 d 2009 02 06 e 2009 02 08 我需要如下排名 Heading Date Rank A 2009 02
  • 在 C# 中替换文本,同时保持大小写不变

    我有一组句子需要用来进行替换 例如 abc gt cde ab df gt de 我有一个文本可以在哪里进行更改 但是我无法事先知道所述文本的大小写 因此 举例来说 如果我有 A bgt abc hyi Abc Ab df h 我必须更换并
  • 什么时候应该使用 C++ 而不是 SQL?

    我是一名 C 程序员 偶尔使用 MySQL 来处理数据库 但我的 SQL 知识相当有限 但我肯定愿意改变这一点 目前 我正在尝试仅使用 SQL 查询对数据库中的数据进行分析 但我准备放弃了 转而将数据导入到C 中 用C 代码进行分析 我和同
  • 如何搜索例程的内容/(SP-触发函数)

    我需要在数据库内所有例程的例程主体 存储过程 函数 触发器 中搜索文本 我该怎么做 Thanks SELECT OBJECT NAME object id FROM sys sql modules WHERE definition LIKE
  • iOS Safari Mobile 禁用上一个和下一个选择输入

    上周五我发现了关于此问题的类似问题 但似乎无法再次找到它 如果有人能指出我正确的方向 那就太好了 本质上我在一个页面上有多个选择菜单 第一个在加载时填充 第二个在第一个选择时填充 够简单的 但是 在 iOS 设备中 当您点击选择元素时 它会
  • 如何从 Laravel 中的表中选择所有列名称?

    我试图从表中获取所有列名Teller 功能 public function getTableColumns tables return DB select DB raw SELECT COLUMN NAME DATA TYPE COLUMN
  • st_intersects 与 st_overlaps

    这两个查询有什么区别 select a gid sum length b the geom from polygons as a roads as b where st intersects a the geom b the geom gr
  • 提高第一个查询的性能

    如果执行以下数据库 postgres 查询 则第二次调用要快得多 我猜第一个查询很慢 因为操作系统 linux 需要从磁盘获取数据 第二个查询受益于文件系统级别和 postgres 中的缓存 有没有一种方法可以优化数据库以快速获得结果fir
  • 删除数据库中的行后如何重新排序ID

    我正在使用 C 来制作具有 sql 数据库的程序 在数据库中我有一个名为Workers 它有一个自动增量和主键ID column 当我删除一条记录时 ID 之间会出现间隙 删除记录后如何重新排序 ID UPDATE 我要做的就是找到记录后将
  • SQL 约束以防止根据列的先前值更新列

    是否可以使用检查约束 或其他一些技术 来防止在更新记录时设置与其先前值相矛盾的值 一个例子是 NULL 时间戳 表明发生了某些事情 例如 file exported 一旦文件被导出并且具有非 NULL 值 就不应再将其设置为 NULL 另一
  • Spark SQL 中的 SQL LIKE

    我正在尝试使用 LIKE 条件在 Spark SQL 中实现联接 我正在执行连接的行看起来像这样 称为 修订 Table A 8NXDPVAE Table B 4 8 NXD V 在 SQL Server 上执行联接 A revision
  • 快速将列的副本添加到 MySQL 表

    我需要一种快速的方法来复制表中的 DATETIME 列并为其指定一个新名称 我的表中有一个名为 myDate 的列 名为 myResults 我需要一个查询来在名为 newDate 的表中创建一个新列 该列的数据与 myDate 列完全相同
  • 我是否需要在外键上指定 ON DELETE NO ACTION?

    我有以下与 SQL Server 2012 一起使用的 DDL CREATE TABLE Subject SubjectId INT IDENTITY 1 1 NOT NULL Name NVARCHAR 50 Not NULL CONST
  • 无法显示 Laravel 欢迎页面

    我的服务器位于 DigitalOcean 云上 我正在使用 Ubuntu 和 Apache Web 服务器 我的家用计算机运行的是 Windows 7 我使用 putty 作为终端 遵循所有指示https laracasts com ser

随机推荐

  • JPEG 的无损裁剪(剪切和粘贴)

    我正在寻找无损 jpeg 操作的示例 博客文章 等 裁剪 n drop 剪切和粘贴 我知道有一个程序jpegtran http jpegclub org jpegtran 它可以执行无损裁剪 在某些情况下 但似乎缺乏良好的文档 是的 我已经
  • javascript new Date(0) 类显示 16 小时?

    interval new Date 0 return interval getHours 上面返回 16 我希望它返回 0 有任何指针吗 getMinutes 和 getSeconds 按预期返回零 谢谢 我正在尝试制作一个计时器 func
  • iPhone 中 POST 方法的多个参数

    我正在尝试使用 POST 将多个参数发送到特定的 url 但它没有正确发送参数 NSDate now NSDate date NSDateFormatter formatter NSDateFormatter alloc init form
  • 使用objective-c/核心图形的水平居中文本

    我正在尝试使用 Core Graphics 在 iPhone 屏幕上居中显示文本 我发现这段代码 https stackoverflow com questions 48034940 draw centered text using cor
  • iOS AVFoundation 视频捕获方向选项

    我有一个应用程序 我只想为前置摄像头进行视频捕获 那没问题 但我希望视频捕捉始终是横向的 即使手机处于纵向状态也是如此 我有一个基于 Apple 发布的 AVCamDemo 代码的工作实现 并借用了中的信息本技术说明 http develo
  • ViewPager 用 2 根手指滑动

    我想用两根手指实现 ViewPager 滑动 我尝试实现 ViewPager 的子类 重写 onTouchEvent 并仅当触摸是由 2 个手指进行时才将该方法传递给超类 但有一个问题 滑动动画也适用于 1 根手指 我想我必须重写其他方法
  • 使用 g++ 编译 FLTK

    我正在使用 C 学习 Stroustrup 的原则和实践 我正在尝试编译以下程序 include
  • 在 Haskell 中创建独特的标签

    我正在用 Haskell 编写一个简单的命令式语言的编译器 输出 Java 字节码 我已经到了发出字节码的抽象表示的地步 在编写编译 if 语句的代码时 我遇到了一些麻烦 为了实现 if 语句 我需要跳转到的标签 因此 我需要为该标签生成一
  • 当所有对象都属于同一类型时,我可以省略 PHP in_array() 中的 strict 参数吗?

    我使用 PHP 的in array https www php net manual en function in array php功能 以下 PHP 代码示例
  • 为什么 LINQ“应用到全部”方法被命名为 Select?

    当我阅读使用的代码时Select我认为 全选 当我阅读使用的代码时Map我认为 这适用于那 或 适用于所有人 我不可能是唯一一个感受到这个名字的人Select令人困惑 Map http en wikipedia org wiki Map 2
  • 如何让用户使用 control + + 进行放大,使用 control + - 进行缩小?

    下面我的代码的问题是在美国 英国键盘布局上 是用生成的shift 但是当用户同时使用 control 和 Shift 修饰符时 没有生成 这已经在 Mac 上测试过了 Keys onPressed if event modifiers Qt
  • 在 Sass 中,如何引用父选择器并排除任何祖父母?

    我有以下 sass 代码 class label color fff disabled color 333 哪个输出 disabled class label 有没有办法输出父选择器而不包含任何祖父母选择器 就像这样 disabled la
  • 间隔 5 分钟后递归启动 AsyncTask

    我想创建一个类的实例 它扩展Asynctask 并调用它的execute 每5分钟后进行一次方法 为此我尝试打电话Thread sleep 5 60 1000 in onPostExecute 方法 然后创建该类的新实例 代码如下 publ
  • 使用fplot函数时如何向量化?

    我正在使用 fplot 我也可以使用绘图 我刚刚找到了更多 fplot 的例子 我想绘制 y m x 形式的两条直线 其中 m V1 和 V2 V1 和 V2 是标量 下面的代码给了我一个错误 Matlab代码 fplot x V1 4 4
  • PHP 文件上传:mime 或基于扩展的验证?

    当我尝试处理文件上传时 是否应该根据文件 MIME 类型或文件扩展名运行验证 这两种文件验证方式的优缺点是什么 而且 我还应该担心其他安全问题吗 这些天我依赖 MIME 类型 但这篇文章中获得最多赞成票的答案 PHP中的文件上传问题 htt
  • 如何从 Visual Studio PTVS 中运行命令?

    我正在使用 Visual Studio 2012 和 PTVS 来处理 locustio 和 suds 我在 Visual Studio 中使用 virtualenv 设置了一个环境 并安装了 locustio suds 和所有相关的依赖项
  • zClip - ZeroClipboard.swf 已删除 - 需要新文件

    我在用着zClip http www steamdev com zclip 在我的网站上复制文本框中的一些内容 我一切正常 但现在 在不更改任何内容的情况下 它停止工作 原因是文件的主机零剪贴板 swf http zeroclipboard
  • Boost tribool 在 C++ 中导致从右到左的条件计算

    据我所知 C 在条件语句中总是从左到右计算 if A B C A首先会被评估 B第二 依此类推 然而 以下示例表现出一些奇怪的行为 include
  • 如何向基于 Visual Studio 的应用程序添加 C/C++ 语言服务?

    我正在尝试创建一个基于 Visual Studio shell 的特定于域的 IDE 我跟着走查 https learn microsoft com en us visualstudio extensibility shell walkth
  • Laravel Eloquent 选择 CASE?

    有没有在 PHP 和 Laravel Eloquent 方面有经验的人可以帮助我解决这个问题 我试图在 raw 方法中注入一个 CASE WHEN END 似乎完全被忽视了 现有的文档还没有 我尝试了几种不同的方法 但都没有成功 我正在努力