Поиск Laravel для значения поля отношения + значение поля отношения равно значению поля - PullRequest
0 голосов
/ 08 мая 2019

Я использую Laravel 5.8, и мне нужно выполнить запрос, который ищет, равняется ли значение определенного поля в отношении + значение определенного поля в другом отношении значению поля основной таблицы.

Чтобы быть более конкретными, модели: JobAd, Application, Offer, ApplicationStatus и OfferStatus.Каждый JobAd имеет поле workers_needed.Я хочу получить все объявления о работе , в которых их приложения, где утвержден статус + , предлагают, где статус утвержден = job_ad.workers_needed

Каждый JobAd имеет много Application и Offer

Каждый Application принадлежит ApplicationStatus

Каждому Offer принадлежит Offerstatus

Каждому ApplicationStatus и OfferStatus присвоено одобренное значение, которое логическое

Ответы [ 2 ]

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

Я не уверен, что это сработает (никогда не пробовал), но вы можете попробовать использовать сCount () в сочетании с havingRaw():

$data = JobAd::withCount([
        'applications' => function ($query) {$query->where('status', 'approved');},
        'offers'       => function ($query) {$query->where('status', 'approved');},
    ])
    ->havingRaw('applications_count + offers_count = workers_needed')
    ->get();
0 голосов
/ 08 мая 2019

job_ad.workers_needed. я не понимаю, но это должно дать вам представление

 $jobs = JobAd::whereHas('applications', function($q){
        $q->where('status', true);
    })->whereHas('offers', function($q){
        $q->where('status', true);
    })->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...