首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Laravel 5.8 withCount()忽略了我的where语句

Laravel 5.8 withCount()是Laravel框架中的一个方法,用于在查询结果中获取关联模型的数量。然而,有时候使用withCount()方法时会忽略where语句,导致查询结果不符合预期。

解决这个问题的方法是使用闭包函数来定义withCount()方法。闭包函数允许我们在withCount()方法中添加自定义的where条件,确保查询结果符合预期。

下面是一个示例代码,展示了如何使用闭包函数来解决忽略where语句的问题:

代码语言:txt
复制
$posts = Post::withCount(['comments' => function ($query) {
    $query->where('approved', true);
}])->get();

在上面的示例中,我们使用闭包函数来定义withCount()方法中的where条件。这样,查询结果将只包含已批准的评论数量,而忽略未批准的评论。

关于Laravel的withCount()方法的更多信息,你可以参考腾讯云的文档:Laravel withCount()方法介绍

请注意,以上答案仅供参考,具体的解决方法可能因实际情况而异。建议在实际开发中仔细阅读相关文档,并根据具体需求进行调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Laravel学习记录--Model

']; 数据库添加 Model::create(['表字段名'=>'值','字段名'=>'值']) 简单查询 详情访问laravel查询构造器 $model->where()->first()//单行查询...使用渴求式加载,即根据预先需求查询出所有数据 为了验证[渴求式加载]好处,举下列例子 这里用到了Laravel Debugbar 调试 安装方法可参照另一个博客 - - - Laravel...,豁然开朗 原文链接 下面结合大佬例子,阐述一下想法 远程一对多,顾名思义“远程”一对多,既然称之为远程一对多,那这个一对多关系肯定不是直接关联,而是“远程”关联,问题是如何远程关联?...,那如果要给某个学生在增加一门选修课怎么办?...会被移除,如果是这样的话那1号学生选修课程1将被移除,同时会向中间表添加课程id=9记录 接下来看他执行过程是否与我们想一样 通过Laravel Debugbar显示sql语句我们可以很清楚看到其执行过程

13.1K20

为什么 Laravel 这么优秀?

准备从一个后端最常用 CURD 例子说起,一步一步阐述这过程中 Laravel 都是怎么完成;以及~大家~()为什么喜欢用 Laravel。...不过这点复杂度比起注册路由&启动服务开销几乎可以忽略不计,并且一个应用也不会有数量过多路由,加之 Laravel 还单独提供 artisnan route:cache 命令来缓存路由注册和匹配。...在 PSR2 代码规范中,还有专门 Laravel 格式化风格。 写了这么久代码,不知道代码到底够不够好,但好在是能嗅到一点点坏代码味道,而这一切都全部得益于 Laravel。...但 Symfony 推广没有 Laravel 那么好运,Symfony 发布到现在已经 12 年,仍然处于不温不火地位(国内看的话),想大概是没有一个像 Taylor Otwell 一样即会写代码还会营销...又用什么部署你 Laravel 应用吗?说实话用了 Laravel 这么久也不知道。

14210

Laravel系列4.4】模型Eloquent ORM使用(二)

而且,关于使用内容,网上也有很多文章以及视频教程也就不走别人老路咯。...其实很明显,它提供各种数组操作函数,就是有很多数组操作我们可以以对象形式提供。...当然,这个集合类相关操作函数还有很多,这里我们只是演示两个,具体内容大家自行查阅一下官方手册。而源码呢?也只给出具体文件,大家自己去看看,里面的数组各种操作功能都非常经典。...laravel/framework/src/Illuminate/Collections/Collection.php 是集合类,里面的方法大部分都调用laravel/framework/src/...剩下还需要我们细讲吗?觉得到这里真的已经非常清晰。 然后我们来看一下这个 Model 基类中其它方法,貌似没有发现 get() 、find() 之类方法呀?这是怎么回事。

2.8K20

记录一次升级TP6.0.3之后翻车现场

经过排查,系think-orm扩展最近一次升级,调整了多对多关联导致错误。...应用代码 下面是关键代码部分 控制器 \app\model\TaskLabel::withCount(['task'])->select() TaskLabel模型 <?...relation\BelongsToMany::belongsToManyQuery()执行了两次,导致结果就是join也执行了两次,出现开头报错SQLSTATE[42000]: Syntax error...主要原因就是在关联方法里面使用了where方法,这个方法是Query类,在关联类里面不存在,所以会触发魔术方法。...就这样,join重复。 问题已找到,关联方法后面不能跟着Query类方法,否则就会出错。目前尚不清楚是框架问题还是自己用法问题,但框架问题可能性大些,毕竟用法按照手册也报错。

69010

当一个查询语句同时出现where,group by,having,order by时候,执行顺序和编写顺序是:

目录 1 编写顺序 1 编写顺序 当一个查询语句同时出现where,group by,having,order by时候,执行顺序和编写顺序是: 1.执行where xx对全表数据做筛选,返回第1...3.针对第2个结果集中每1组数据执行select xx,有几组就执行几次,返回第3个结果集。 4.针对第3个结集执行having xx进行筛选,返回第4个结果集。 5.针对第4个结果集排序。...Group By 和 Having, Where ,Order by这些关键字是按照如下顺序进行执行Where, Group By, Having, Order by。...-- 3、查询平均成绩大于等于60分同学学生编号和学生姓名和平均成绩 select b.s_id,b.s_name,ROUND(AVG(a.s_score),2) as avg_score from...score a on b.s_id = a.s_id GROUP BY b.s_id,b.s_name HAVING avg_score >=60; 根据题意,需要用到信息表 成绩表 首先查出有成绩学生

77120

Laravel5.8+LayUI踩坑之路

今天在整理博客笔记时发现,自己对于现在所学Laravel5.8与LayUI前端框架学习笔记已经多达近20篇,其中包括Laravel5.8理解、配置环境、部署Laravel5.8框架、Laravel5.8...学习笔记、使用LayUI兼容性踩坑笔记、相关技能学习及项目笔记等文章,特此在此处建立一个里程碑,来记录自己学习Laravel5.8与LayUI艰难合并之路,哈哈,看看我文章吧。...思维导图 ---- image.png ---- 环境搭建 Ubuntu16.04部署LNMP环境 【Ubuntu16.04】使用composer安装laravel框架 【Composer】安装Laravel5.8...踩坑日记之文件上传 Laravel5.8学习之数据库操作构造器 踩坑笔记 Laravel5.8使用LayUI上传并显示图片操作 Laravel5.8使用LayUI实现批量删除 Laravel5.8使用LayUI...实现无刷新修改排序值 相关学习 远程Ubuntu系统时获取Root权限 Ubuntu16.04中MySQL5.7设置UTF-8编码 Nginx设置子域名解析 Xmind Zen思维导图中战斗机 本文链接

1.6K20

Laravel实现批量更新多条数据

前言 近期在刷新生产环境数据库时候,需要更新表中字段,如果对每条数据结果都执行一次update语句,占用数据库资源就会很多,而且速度慢。...因为项目是Laravel框架,Laravel有批量插入方法,却没有批量更新方法,没办法只能自己实现。...即是将条件语句写在一起。 这里where部分不影响代码执行,但是会提高sql执行效率。 确保sql语句仅执行需要修改行数,这里只有3条数据进行更新,而where子句确保只有3行数据执行。...不过这个有个缺点 : 要注意问题是SQL语句长度,需要考虑程序运行环境所支持字符串长度,当然这也可以更新mysql设置来扩展。...本文主要讲解了Laravel实现批量更新多条数据方法,更多关于Laravel使用技巧请查看下面的相关链接

3.5K30

牛哇,PHP这个开发框架真的好香!

而且也是从Java,golang裸转php。这里不谈那种语言好坏之分。开发来说,拥抱技术,拥抱变化,公司用什么技术栈,你就用什么技术。熟练开发就好了。...## (进入项目后),安装依赖中包(出现vendor) composer install --ignore-platform-reqs ## 启动 项目 php artisan...# 更新Composer,(包依赖)忽略平台问题 composer install --ignore-platform-reqs # 安装项目模块, 忽略平台问题 设置应用密钥...下面重点细讲解数据库models 下面演示一下开发中常用编写sql语句 新建sql CREATE TABLE `laravel_users` ( `id` mediumint(8) unsigned...觉得重点也在sql编写。更多sql链式编写查询官方文档,应该是很快可以上手。 之后还有比laravel更高级用法lumen框架,就类似Javamybatis-plus与mybatis。

21320

CVE-2021-39165: 从一个Laravel SQL注入漏洞开始Bug Bounty之旅

不过搜索一下自己星球,发现的确没有讲过如何调试PHP代码,那么回答一下这个问题也未尝不可。...所以,这个检查形同虚设,用户输入数组 0x03 Laravel代码审计 熟悉Laravel同学对where()应该不陌生,简单介绍一下用法。...将debug模式打开,并注释抑制报错逻辑,即可在页面上看到SQL注入报错: 1[3]参数可以注入任何语句,所以这里存在一个SQL注入漏洞。...主要是在初始化PDO时候设置PDO::ATTR_EMULATE_PREPARES为false,而数据库默认参数化查询不允许prepare多个SQL语句。...再加上前文说到_self对象也被限制发现很难找到可以被利用方法。 此时关注到了rcrowe/twigbridge这个库。

60620

Laravel系列4.2】查询构造器

查询语句相对来说会复杂一些,我们在测试代码中增加了 where() 、orderBy() 和分页相关组织函数。最后,通过一个 get() 函数就可以获得列表信息。...我们又发现一个设计模式在 Laravel 框架中应用,意外不意外,惊喜不惊喜! 连表查询 普通连表查询使用还是非常简单也就不多说了,下面的代码中也有演示。...注意看我注释掉第二种多条件写法,在这里面使用了 orOn() 和 where() ,大家可以打开测试一下,结果是如下 SQL 语句。...SQL 语句是什么,直接使用一个 toSql() 方法就可以。..."{$table} as {$as}" : $table; return $this; } 看到没有,已经开始在构建原始 SQL 语句

16.8K10
领券