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? 的相关文章

随机推荐

  • 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 似乎完全被忽视了 现有的文档还没有 我尝试了几种不同的方法 但都没有成功 我正在努力