Например, в методе сервиса необходимо для пользователя добавить связанную сущность. Если такая уже есть, надо уведомить об этом. Я это представляю как-то так:
Код: Выделить всё
class SomethingService
{
/**
* Exist
*/
const EX_CODE_EXIST = 100;
/**
* Create
* @throw
*/
public function create (UserIdentityInterface $user)
{
if ($user->something !== null) {
throw new \yii\base\Exception('Something already exist', self::EX_CODE_EXIST)
}
$model = new Something();
$model->userId = $user->id;
if (!$model->save(false)) {
throw new \yii\base\Exception('Can not create something model.');
}
return $model;
}
}
Код: Выделить всё
try {
$service = new SomethingService();
$service->create(Yii::$app->user->identity);
} catch (\yii\base\Exception $e) {
if ($e->getCode() === SomethingService::EX_CODE_EXIST) {
// logic one
} else {
// logic two
}
}