我有一个叫波斯特的模特.在我的数据库中,我有像"查看"和"喜欢"这样的字段. 我需要向我的SELECT请求添加一个定制字段,如执行"查看+点赞"的"react ". 使用属性不是一个好主意,因为我需要在带有分页的WHERE中使用"react ".

以下是我工作所需的代码

$posts = Post::where('reactions', '>', 100)->paginate();

我如何让自动添加的字段对我的所有请求做出"react "?

推荐答案

不能在WHERE子句中使用别名.

标准SQL不允许在WHERE中引用列别名 第.条.施加此限制是因为当WHERE代码为 执行时,可能尚未确定列值.

MySQL documentation和这个question复制

正如文档中所指出的,使用HAVING可能会起到作用.一定要读一读这个问题:WHERE vs HAVING.

您可以在Laravel查询构建器中使用如下所示:

$posts = Post::select(['*', DB::raw('(views + likes) as reactions')])
    ->having('reactions', '>', 100)
    ->paginate();

Php相关问答推荐

如何在数据库中添加注册表单中的动态新行?

Laravel:让所有用户在一年中的特定月份休息几天

PHP中冒号的奇怪用例

在WooCommerce产品中按类型对产品属性术语进行分类以供显示

ForHumans函数中的月当量与单位限制

在WooCommerce中禁用客户用户角色的纳税计算

使用CODIGNITER3中的OR和AND子句进行查询

获取作者';在WordPress中使用PHP

Woocommerce 仅在前端为登录用户提供价格折扣

从 XAMPP 运行 shell 脚本时,意外标记(附近出现语法错误

使用自定义插件中的 WooCommerce 模板发送自定义邮箱

向元素添加类时添加循环错误

根据所选付款方式更改 WooCommerce 提交结帐按钮文本

PHP 简单 XML Xpath 上移树(带有名称的父级)

防止使用woocommerce_checkout_process下单

用于检测此模式的正则表达式:something;something=something,something=something... 未知次数

仅允许减少 WooCommerce 中已完成订单的库存数量

使用 Process facade 在外部 Laravel 项目上运行 Artisan 命令会返回主项目的数据库错误

输出每个可能的产品选项

遇到特定键时修改二维数组以创建嵌套数据集