22
Июл
2021

Yii2 Rest Api Выбрасываем исключение

Вообщем у меня есть api которое я пишу на yii2, и решил дабы избавиться от лишнего кода, просто при ошибки во время проверки кидать исключение, делаю это так:

if ($ticket->tickets_left > $count_ticket) {
    $ticket->tickets_left -= $count_ticket;
    $hours = json_decode($ticket->schedule_minute);
    foreach ($hours as $hour) {
        if ($hour == (int)$order['hours']) {
            if ($hour->tickets_left > $count_ticket) {
                if ((int)$order['ticketsCount']['adults']) {
                    $total_price += ((int)$order['ticketsCount']['adults'] * $hour->price_adults);
                }
    
                if ((int)$order['ticketsCount']['students']) {
                    $total_price += ((int)$order['ticketsCount']['students'] * $hour->price_stud);
                }
    
                if ((int)$order['ticketsCount']['children']) {
                    $total_price += ((int)$order['ticketsCount']['kid'] * $hour->price_children);
                }
                $hour->tickets_left -= $count_ticket;
    
                foreach ($hour->minutes as $minute) {
                    if ($minute->minute == (int)$order['minutes']) {
                        if ($minute->count_ticket_left > $count_ticket) {
                            $minute->count_ticket_left -= $count_ticket;
                        } else {
                            return throw new UnprocessableEntityHttpException(Yii::t('app', 'Sorry, tickets for the selected time have run out'));
                        }
                    }
                }
            } else {
                return throw new UnprocessableEntityHttpException(Yii::t('app', 'Sorry, tickets for the selected time have run out'));
            }
        }
    }
} else {
    return throw new UnprocessableEntityHttpException(Yii::t('app', 'Sorry, tickets for the selected time have run out'));
}

Вот и вроде, всё должно работатть, но вот, что я получил в ответ через postman:

ParseError: syntax error, unexpected 'throw' (T_THROW), expecting ';' in 
D:\OpenServer\domains\iBrush\teleportAdmin\api\controllers\OrderController.php:90
Stack trace:
#0 [internal function]: yii\BaseYii::autoload()
#1 [internal function]: spl_autoload_call()
#2 D:\OpenServer\domains\iBrush\teleportAdmin\vendor\yiisoft\yii2\base\Module.php(643): class_exists()
#3 D:\OpenServer\domains\iBrush\teleportAdmin\vendor\yiisoft\yii2\base\Module.php(602): yii\base\Module->createControllerByID()
#4 D:\OpenServer\domains\iBrush\teleportAdmin\vendor\yiisoft\yii2\base\Module.php(594): yii\base\Module->createController()
#5 D:\OpenServer\domains\iBrush\teleportAdmin\vendor\yiisoft\yii2\base\Module.php(528): yii\base\Module->createController()
#6 D:\OpenServer\domains\iBrush\teleportAdmin\vendor\yiisoft\yii2\web\Application.php(104): yii\base\Module->runAction()
#7 D:\OpenServer\domains\iBrush\teleportAdmin\vendor\yiisoft\yii2\base\Application.php(392): yii\web\Application->handleRequest()
#8 D:\OpenServer\domains\iBrush\teleportAdmin\web\index.php(12): yii\base\Application->run()
#9 {main}

Вообщем нужна ваша помощь.

Источник: https://ru.stackoverflow.com/questions/1307717/yii2-rest-api-%D0%92%D1%8B%D0%B1%D1%80%D0%B0%D1%81%D1%8B%D0%B2%D0%B0%D0%B5%D0%BC-%D0%B8%D1%81%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5

Тебе может это понравится...

Добавить комментарий