php - 如何将条件附加到 Eloquent 关系查询中?

标签 php mysql laravel eloquent eloquent-relationship

我正在尝试创建过滤器,我只想使用一些条件将查询附加到关系。我不想将这些条件放在代码的第一 block 中。那么如何获取查询实例以便将新查询附加到现有关系中呢?

    $query = Category::query();

    $query->where('category_type', 'xyz')
        ->with(['products' => function ($query) {
            $query->where('condition1', 'value')
                ->where('condition2', 'value');
        }]);


    if (isset($queryParams['param1'])) {
        $query->with(['products' => function ($query) use ($queryParams) {
            $query->getQuery()->where('type', $queryParams['param1']);
        }]);
    }

目前,它只是覆盖第一个查询关系条件。

最佳答案

这应该有效:

$query = Category::query();

$query->where('category_type', 'xyz')
->with(['products' => function ($query) use ($queryParams) {
    $query->where('condition1', 'value')
    ->where('condition2', 'value');
    if (isset($queryParams['param1'])) {
        $query->where('type', $queryParams['param1']);
    }
}]);

关于php - 如何将条件附加到 Eloquent 关系查询中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58552643/

相关文章:

mysql - 异常 : Unsupported operation: RawSocket constructor (Dart with sqljocky5: ^2. 2.1)

php - 如何更好地构造此上下文,并为每个选定的票证类型显示与该票证类型关联的自定义字段?

php - 拉维尔 5 : Sessions on 404 route

php - MYSQL - INSERT 错误,字段列表中的未知列

php - html 表单提交调用 php 但不重定向

php - 单个 php,同时包含三种不同类别的图像

mysqldump整个结构,但仅在单个命令中选择表中的数据

php - 同时使用 Laravel 强制转换和修改器

php - 如何使用 PHP 变量正确插入 MySQL

php - 在 (1, 2) (2, 1) 友谊场景中,有哪些方法可以获得共同的 friend ?