希望根据请求参数构建包含或排除具有给定关系的行的查询.我能想出几个解决方案,但它们看起来不必要地复杂.类似于:(不起作用)

Post::with([ 'images' ])
        ->when(isset($request->hasImages), fn($query, $hasImages) => $query->has('images') == $hasImages)
        ->get()

准确的代码块来帮助我

推荐答案

如果在请求中设置了hasImages,您是否只try 获取具有相应图像的行;如果没有设置,则加载所有帖子?这比你做的要简单得多:

Post::with('images')
    ->when($request->hasImages, function ($query) {
        $query->has('images');
    })
    ->get()
;

Php相关问答推荐

Symfony Monolog:使用多个格式化程序

在WooCommerce管理订单列表中显示项目总权重

获取要删除的图像的公共ID

Symfony5:如何在不登录的情况下使API路由可访问?

如何使用MS Graph PHP SDK V2下载文件

即使在WooCommerce购物车中添加了两次产品,也要将所有项目设置为空白行

为什么WooCommerce的动作钩子';woocommerce_checkout_update_order_review';包含旧信息?

API 平台 - UI 服务器端点定义

在php中计算两个没有假期的日期之间的小时差

PHP API - 本地主机中的 SSL 证书问题

如何从 URL 核心 PHP 中的 API 获取 JSON?

Google Drive API 服务->文件->get('root') 失败并显示找不到文件. (范围问题?)

调度程序不发送任何消息

使用 phpseclib 验证 RSA-PSS

在 groupBy laravel 5.7 中 Select 多列

PHP Symfony 在测试.env文件中将接口自动装配作为构造函数参数,但使用接口的特定类

WooCommerce – 在新订单邮箱通知中显示产品分类计数

WooCommerce - 调用功能ID不正确.不应直接访问订单属性

Laravel 查询关系是否为 bool

Symfony 自定义注销