Где предложение о вложенных отношениях в eloquent на основе значения столбца в родительской таблице - PullRequest
0 голосов
/ 23 июня 2019

Я работаю над проектом, в котором мы сохраняем активность пользователя и его настройки конфиденциальности. Я хочу получить активность пользователя на основе его настроек конфиденциальности. Так что, если пользователь установил свой gpa как частный, то мой запрос не должен отображать активность пользователя, связанную с gpa. Мой текущий запрос выглядит так:

UserActivity::with(['User' => function ($q) {
            $q->with(['avatar' => function ($q2) {
                $q2->select(['id', 'image']);
            }])
            ->select(['id', 'first_name', 'last_name', 'profile_picture']);
        }, 'User.PrivacySetting'])
        ->whereHas('User.PrivacySetting', function($q3) {
            $q3->where('gpa', '!=', PrivacySetting::PRIVACY_STATUS_NO_ONE)
            ->orWhere('cv', '=', PrivacySetting::PRIVACY_STATUS_NO_ONE)
            ->orWhere('groups', '!=', PrivacySetting::PRIVACY_STATUS_NO_ONE)
            ->orWhere('phone', '!=', PrivacySetting::PRIVACY_STATUS_NO_ONE)
            ->orWhere('courses', '!=', PrivacySetting::PRIVACY_STATUS_NO_ONE)
            ->orWhere('notes', '!=', PrivacySetting::PRIVACY_STATUS_NO_ONE)
            ->orWhere('classifieds', '!=', PrivacySetting::PRIVACY_STATUS_NO_ONE)
            ->orWhere('checkin_event', '!=', PrivacySetting::PRIVACY_STATUS_NO_ONE);
        })
        ->orderBy('id', 'desc');

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