You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel如何无需二次查询判断查询结果$categories是否包含$request->newParent对应id

可以实现,不需要发起额外的数据库查询。

你调用get()方法后已经将符合条件的所有数据全部加载到内存中,得到的$categories是Laravel框架的Collection集合实例,所有集合操作都在本地内存执行,不会触发新的SQL请求。

具体实现方法

  • 最简通用写法
    直接调用集合的contains方法指定匹配字段和目标值,返回布尔值代表是否存在匹配项:
$isExists = $categories->contains('child_id', $request->newParent);
  • 自定义逻辑写法
    如果需要强类型校验或者额外判断条件,可以使用回调写法自定义匹配规则:
$isExists = $categories->contains(function ($relationItem) use ($request) {
    // 可在此处添加任意自定义判断逻辑,示例为强类型匹配
    return $relationItem->child_id === $request->newParent;
});

如果需要验证确实没有产生额外查询,可以在代码执行前后开启SQL日志打印校验,不会出现新的查询语句。


内容的提问来源于stack exchange,提问作者Djozeph

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 21:27:03