2014-06-26 2 views
2

Я создаю страницу регистрации, чтобы создать нового пользователя на основе FOSUserBundle.Как отладить форму Symfony2?

Я отправляю это сообщение в верхней части формы каждый раз, когда я отправляю новую форму пользователя: Это значение не должно быть пустым.

По-видимому, это глобальное сообщение, и оно не связано с конкретным полем в моей форме, поэтому я предполагаю, что оно должно быть связано с любым другим атрибутом моего класса User.

Какой механизм Sf2 предлагает мне, чтобы выяснить, что не так в моей форме? Я использую Symfony 2.5.0

(я бы разместить более подробную информацию о моей конфигурации, класс пользователя и форму ... но мне очень хотелось бы узнать, как найти эту проблему на моей)

Спасибо заранее, сообщество!

ответ

1

Заканчивать панель инструментов отладки на контроллере DEV во внешнем интерфейсе, его хороший способ отладки для начала

0

Это сложная ошибка, которую трудно отследить. Я не смог самостоятельно отслеживать такие ошибки, поэтому я искал в Google и SO. Я нашел ответ, который объяснил проблему моей формой. Это правило проверки на одном из полей, которое не было включено в форму.

Итак, в вашем случае это также может быть причиной. Вероятно, существует правило проверки (скорее всего, NotBlank) в поле, которое не входит в форму. Просто попробуйте отключить их один за другим, чтобы найти файл, который вызывает эту ошибку.

0

Я думаю, вам стоит попробовать распечатать $request->get('name_of_your_form'), а после связывания его с формой попробуйте распечатать $form->getData(). Должно быть достаточно, чтобы понять, какое поле вызывает проблему.

Также обратите внимание на validation groups.

0

Попробуйте напечатать ошибки формы в виде строки, используя методы $form->getErrorsAsString() или $form->getErrors().

Взятые из source

/** 
* Returns a string representation of all form errors (including children errors). 
* 
* This method should only be used to help debug a form. 
* 
* @param int  $level The indentation level (used internally) 
* 
* @return string A string representation of all errors 
* 
* @deprecated Deprecated since version 2.5, to be removed in 3.0. Use 
*    {@link getErrors()} instead and cast the result to a string. 
*/ 
public function getErrorsAsString($level = 0) 
{ 
    return self::indent((string) $this->getErrors(true, false), $level); 
} 
0

вы должны увидеть сообщение об ошибке с более описанием в логах/_profiler даже может быть, ошибка SQL, которая может привести к корню проблемы.

 Смежные вопросы

  • Нет связанных вопросов^_^