简体   繁体   English

动态laravel SQL查询构建器

[英]Dynamic laravel SQL query builder

I'm trying to create a dynamic query with laravel whereby if certain conditions are met it will add to my query. 我正在尝试使用laravel创建一个动态查询,如果满足某些条件,它将添加到我的查询中。 Here is what I have attempted so far. 到目前为止,这是我尝试过的。 Any guidance please? 有什么指导吗?

    $Tasks = Task::leftJoin('task_recipients', 'tasks.task_id', '=', 'task_recipients.recipient_task_id');

    if ($filterAssignedToMe !== NULL) {
        $Tasks->where('task_recipients.recipient_user_id', '=', $user_id);
    }

    if ($filterAssignedByMe !== NULL) {
        $Tasks->where('tasks.created_by', '=', $user_id);
    }

    $Tasks->groupBy('task_id');
    $Tasks->get();

Here you go: 干得好:

$Tasks = Task::leftJoin('task_recipients', 'tasks.task_id', '=', 'task_recipients.recipient_task_id');

if ($filterAssignedToMe !== NULL) {
    $Tasks = $Tasks->where('task_recipients.recipient_user_id', '=', $user_id);
}

if ($filterAssignedByMe !== NULL) {
    $Tasks = $Tasks->where('tasks.created_by', '=', $user_id);
}

$Tasks = $Tasks->groupBy('task_id');
$Tasks = $Tasks->get();

Does this work? 这样行吗?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM