Несколько глубинном уровне помощью методов hasmany отношения в фреймворк Laravel красноречивый

Несколько глубинном уровне помощью методов hasmany отношения в фреймворк Laravel красноречивый

16.11.2019 01:58:58 Просмотров 75 Источник

У меня есть пользовательская модель, которая будет добавлять клиентов, которые будут иметь постоянный адрес (Идентификатор в таблице клиентов для ссылки на их адреса), который будет иметь подразделения, которые будут иметь районы и, наконец, которые будут иметь много Субрайонов.

Таблицы, как так с hasMany и принадлежат отношениям-

    - Users
       - Clients
          - PermanentAddresses (keeping the IDs of the subsequent child areas and client_id)
             - Divisions
                - Districts
                    - Subdistricts

Как я могу получить всех клиентов из конкретных районов, которые будут принадлежать к районам и так далее вплоть до клиентов.

Все эти уровни управляют красноречивыми / объединенными запросами орехов. Некоторые подсказки будут высоко оценены. Это HasMany глубокие отношения имеет то же самое, но нет ответа, чтобы достичь этого без использования пакета. Хотя ситуация аналогичная.

У вопроса есть решение - Посмотреть?

https://stackoverflow.com/questions/58889979/multiple-level-deep-hasmany-relationships-in-laravel-eloquent#comment104046062_58889979
вы пробовали отношения hasManyTrough или Laravel?
https://stackoverflow.com/questions/58889979/multiple-level-deep-hasmany-relationships-in-laravel-eloquent#comment104046231_58889979
я думаю, что или вы должны использовать Query Builder, или вам нужно создать представление в своей базе данных, которое объединяет все эти таблицы, и вам нужно запросить эту таблицу с помощью Query builder.... Красноречивый не может обеспечить такого большого уровня глубины отношений, самое большее 2 с hasManyTrough

Ответы - Несколько глубинном уровне помощью методов hasmany отношения в фреймворк Laravel красноречивый / Multiple level deep hasMany relationships in Laravel Eloquent

ARIF MAHMUD RANA

16.11.2019 03:45:47

Это ясный случай того, что вы видите https://laravel.com/docs/5.8/eloquent-relationships#querying-relationship-existence

Clients::whereHas('PermanentAddresses.Divisions.Districts.Subdistricts', function ($q) use ($subDistrictID) {
  $q->whereId($subDistrictID);
})->get();

Измените 'PermanentAddresses.Divisions.Districts.Subdistricts'это к согласно вашим отношениям.

Здесь $subDistrictID-это идентификатор вашей таблицы субрайонов, если вы думаете, что это может быть не идентификатор, или ваш запрос будет чем-то другим, а затем изменится в соответствии с этим.

Я не проверял, но это должно сработать.

Помочь в развитии проекта:
Закрыть X