protected function saveSubscriptionCategories($categories, $subscription_id, $are_exceptions = false) { if ($categories === null) { return true; } if (!is_array($categories)) { $categories = [$categories]; } foreach ($categories as $category) { $subscriptionCategory = new models\DbSubscriptionCategory(); $subscriptionCategory->setAttributes(['subscription_id' => $subscription_id, 'category' => str_replace('*', '%', $category), 'is_exception' => $are_exceptions ? 1 : 0]); if (!$subscriptionCategory->save()) { throw new Exception(Yii::t('app', 'Failed to save category {category} for subscription {subscription_id}', ['category' => $category, 'subscription_id' => $subscription_id])); } } return true; }