Области применения Laravel с отношением и условиями - PullRequest
0 голосов
/ 26 мая 2019

у меня есть этот код области действия laravel

public function apply(Builder $builder, Model $model)
{
    $builder->whereDoesntHave('getPermissionData');
}

до сих пор все работало нормально, что мне нужно, это исправить условия как это

public function apply(Builder $builder, Model $model)
{
    /*
        if($builder->whereHas('getPermissionData'))
        {
            check the relation 
            and do some code here
        }
    */
    $builder->whereDoesntHave('getPermissionData');
}

это возможно или нет

1 Ответ

2 голосов
/ 28 мая 2019

Вам нужно создать два разных условия в or друг с другом.Вы также должны заключить это условие в условие where, чтобы следующие условия не были включены в or aswell

public function apply(Builder $builder, Model $model) {
    $builder->where(function ($query) {
         $query->whereDoesntHave('getPermissionData')
               ->orWhereHas('getPermissionData', function ($permissionQuery) {
                   // Apply your condition to the relation query
               });
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...