本文整理汇总了PHP中app\models\Users::sendMoney方法的典型用法代码示例。如果您正苦于以下问题:PHP Users::sendMoney方法的具体用法?PHP Users::sendMoney怎么用?PHP Users::sendMoney使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类app\models\Users
的用法示例。
在下文中一共展示了Users::sendMoney方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: sendMoney
/**
* Возвращает true при успешной операции или строку с ошибкой
*
* @param $money
* @param $recipient
*
* @return bool|string
*
* @throws Exception
*/
public static function sendMoney($money, $recipient)
{
// Проверка входных данных (только положительные числа)
if (!preg_match('/^\\d*\\.?\\d*$/', $money)) {
return 'Введите положительное число';
}
$transaction = Yii::$app->db->beginTransaction();
$transaction->setIsolationLevel('SERIALIZABLE');
try {
// Вычесть деньги у отправителя
Users::sendMoney($money, Yii::$app->user->id);
// Прибавить полуателю
Users::addMoney($money, $recipient);
// Записать операцию
$operation = new self();
$operation->sum = $money;
$operation->recipient = $recipient;
$operation->link('sender', Users::findOne(Yii::$app->user->id));
$transaction->commit();
// Ошибок нет
return true;
} catch (OperationException $e) {
$transaction->rollback();
return $e->getMessage();
} catch (Exception $e) {
$transaction->rollback();
if (YII_DEBUG) {
throw $e;
} else {
return 'Неизвестная ошибка';
}
}
}