рамки Symfony - PullRequest
       15

рамки Symfony

0 голосов
/ 21 апреля 2011

Я использую этот код проверки в actions.class.php для проверки ввода,

$name = $this->getRequestParameter('title');    
if (!$name)
{
    $this->getRequest()->setError('The name field cannot be left blank');
    return false;
}

Но встречаются ошибки типа

You must set "compat_10" to true if you want to use this method which is deprecated.

в журнале ошибок. После получения этой ошибки я установил compat_10 в true в settings.yml , но все равно получил ту же ошибку.

Ответы [ 3 ]

1 голос
/ 30 августа 2013

Метод $this->getRequest()->setError() доступен только в symfony 1.0 и 1.1, начиная с symfony 1.2, поведение валидатора и вся обработка ошибок в действиях была удалена, чтобы больше соответствовать новой структуре форм.

Я предполагаю, что вы используете версию от 1.2 до 1.4, и в этом случае метод, который вы пытаетесь использовать, устарел, и вы должны включить для этого плагин compat_10. Я вижу, что вы включили его, но так как его поведение исходит от плагина, вы должны убедиться, что у вас включен sfCompat10Plugin в вашем методе ProjectConfiguration::configure().

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

0 голосов
/ 28 февраля 2013

Вы можете использовать исключительную обработку для обработки ошибок

try {
 $this->getRequest()
 } catch (\Doctrine\ORM\NoResultException $e) {
 return null;
}
0 голосов
/ 21 апреля 2011

В зависимости от того, как сильно вы хотите потерпеть неудачу, вы можете сделать одно из следующих действий:

  • Бросить sfException ... Это показывает общее сообщение об ошибке 500.
  • вперед до 404. Например, когда ваш заголовок является частью URL или другого типа параметра выбора. Есть удобный способ сделать это: $this->forward404Unless($name, 'No title provided').
  • Установите ваше сообщение в шаблон var $this->errorMessage = '...';, а затем верните сообщение об ошибке return sfView::ERROR и покажите красивое сообщение в шаблоне actionError.php.

(я бы, наверное, пошел на секунду)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...