public function sqlConditionAndPlaceholderValueForUserId($user_id) { $user_obj = User::factory($user_id); if ($user_obj->getHasFullAccess()) { return ['', []]; // do not filter } $current_user_usertogroup_ids_arr = UserToGroup::getIdsArrForUserIdByCreatedAtDesc($user_id); $current_user_groups_ids_arr = []; foreach ($current_user_usertogroup_ids_arr as $usertogroup_id) { $usertogroup_obj = UserToGroup::factory($usertogroup_id); $current_user_groups_ids_arr[] = $usertogroup_obj->getGroupId(); } $placeholder_values_arr = []; $where = ' ('; $where .= '(owner_user_id = ?)'; $placeholder_values_arr[] = $user_id; if (count($current_user_groups_ids_arr) > 0) { $user_groups_placeholders_arr = array_fill(0, count($current_user_groups_ids_arr), '?'); $where .= ' or (owner_group_id in (' . implode($user_groups_placeholders_arr) . '))'; $placeholder_values_arr = array_merge($placeholder_values_arr, $current_user_groups_ids_arr); } $where .= ') '; return [$where, $placeholder_values_arr]; }