Symfony 2.8: получить команду сообщения с помощью процесса в контроллере

#symfony #symfony-2.8

#symfony #symfony-2.8

Вопрос:

У меня есть файловая команда, обрабатывающая данные, добавляющие базу данных. Я использую документ Symfony 2.8 Process для обработки в контроллере. Все работало нормально. Но я получил сообщение об ошибке. В команде file я использую if-else для проверки данных. При обработке и запуске $process->run() я не могу получить ошибку в else (в else. Я использую echo , чтобы показать ошибку).

 if (!empty($id)) {
  // handling code
} else {
 echo "not found Id"
}
 

У вас есть какие-нибудь идеи? помогите мне, пожалуйста!

Документ, который я использую: https://symfony.com/doc/current/components/process.html

Комментарии:

1. Не по теме, но всегда будьте осторожны при просмотре документации Symfony, чтобы использовать правильный номер версии. 2.8 довольно старый и не поддерживается. Со временем все меняется, и легко запутаться. Правильная ссылка: symfony.com/doc/2.8/components/process.html

Ответ №1:

Обычно вы можете получить выходные данные процесса, используя: echo $process->getOutput(); или в вашем случае вы можете создать исключение, например

 if (!empty($id)) {
    // handling code
} else {
    throw new Exception('Id not found');
}
 

и поместите ваш процесс в блок try catch следующим образом

 try {
    $process->mustRun();

    echo $process->getOutput();
} catch (Exception $exception) {
    echo $exception->getMessage();
}