Я работаю над проектом, в котором мы сохраняем активность пользователя и его настройки конфиденциальности. Я хочу получить активность пользователя на основе его настроек конфиденциальности. Так что, если пользователь установил свой 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');