Laravel Eloquent рассчитывает на то, чтоwhereIn() имеет 5 отношений глубиныPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Laravel Eloquent рассчитывает на то, чтоwhereIn() имеет 5 отношений глубины

Сообщение Anonymous »

Мне нужна ваша помощь, потому что я хочу максимально оптимизировать эти запросы...

Я хочу получить количество оповещений, которые находятся в:

Код: Выделить всё

companies -> sites -> interventions -> purchases -> alerts
Я хочу получить количество действий, которые находятся в:

Код: Выделить всё

contractors -> actions

Код: Выделить всё

companies -> actions
Я делаю следующее, но 7 запросов на каждой странице — это не очень хорошо:/

Код: Выделить всё

$companies = Company::where('id', '=', Auth::user()->userable_id)->orWhere('company_id', '=', Auth::user()->userable_id)->pluck('id')->toArray();
$contractors = Contractor::where('id', '=', Auth::user()->userable_id)->orWhere('company_id', '=', Auth::user()->userable_id)->pluck('id')->toArray();

$cp = array_merge($companies, $contractors);

$sites = Site::whereIn('company_id', $companies)->pluck('id')->toArray();
$interventions = Intervention::whereIn('site_id', $sites)->pluck('id')->toArray();
$purchases = Purchase::whereIn('intervention_id', $interventions)->pluck('id')->toArray();
$bubblecounts['alerts'] = Alerts::whereIn('purchase_id', $purchases)->where('status', 0)->whereDate('alert_date', '!=', '0000-00-00 00:00:00')->count();
$bubblecounts['actions'] = Action::whereIn('actionable_id', $cp)->where([['status', 0], ['alert_date', '!=', null]])->count();
Можете ли вы мне помочь? Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/445 ... tions-deep
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»