Проверка формы Symfony Базовая форма

1

У меня есть класс пользовательских сущностей: namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Doctrine\ORM\Mapping\OneToOne;
use Doctrine\ORM\Mapping\JoinColumn;
use Symfony\Component\Validator\Constraints as Assert; 

/**
* @ORM\Entity
* @ORM\Table(name="clients")
*/
class Clients
{
    /**
    * @ORM\Column(type="integer")
    * @ORM\Id
    * @ORM\GeneratedValue(strategy="AUTO")
    */
   private $id;

   /**
    * @ORM\Column(type="string", length=255, nullable=false)
    * @Assert\NotBlank(
    *      groups={"registration"}, 
    *      message = "Il campo nome non può essere vuoto."
    * )
    */
    private $name;

Затем у меня есть тип ClientsType:

namespace AppBundle\Form;

use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;

class ClientsType extends AbstractType {

    public function buildForm(FormBuilderInterface $builder, array $options) {
        $builder->add('name');
    }

    public function getName() {
        return "Clients";
    }

    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults(array(
        'data_class' => 'AppBundle\Entity\Clients',
        'validation_groups' => array('registration'),
        ));
    }

}

И я мой контроллер:

    if ($request->isMethod('POST')) {

        $client = new Clients();

        $form = $this->createForm(ClientsType::class, $client);

        $form->handleRequest($request);

        $data = $form->getData();
        print_r($data);

        if ($form->isValid()) {
            echo "yes";
        }
            else{
            echo "no";
        }

        die();
    }

Я вижу, что есть простая форма html.

<input type="text" class="form-control" value="{{last_name}}" id="name" name="name" placeholder="Nome">

Проблема в том, что если я отправляю или нет "имя", я всегда получаю "нет"...

Спасибо... Фабио.

  • 0
    О getErrors() ошибках сообщает форма (используя getErrors() или getErrorsAsString() объекта $form )?
  • 0
    С "$ res = $ form-> getErrors (); print_r ($ res);" я получаю отклик (с некоторыми объектами ... я думаю, что больше 2000 строк ... без print_r пустая строка). Если я использую «$ form-> getErrorsAsString ()», я получаю «Попытка вызвать неопределенный метод с именем« getErrorsAsString »класса« Symfony \ Component \ Form \ Form ».». Спасибо!
Показать ещё 1 комментарий
Теги:
doctrine

1 ответ

0
Лучший ответ

Я думаю, что форма не проверена правильно, потому что входное имя в шаблоне неверно, поэтому форма не заполнена почтовыми данными. Попробуйте изменить name="name" на name="Clients[name]" или передать форму в шаблон $form->createView() и вывести этот элемент как {{ form_widget(form.name) }}

  • 0
    Здравствуй. Я изменил свою форму в <div class = "form-group"> <label for = "name"> Nome * </ label> <input type = "text" class = "form-control" value = "{{last_name }} "id =" name "name =" Clients [name] "placeholder =" Nome "> </ div> Но не работает ... сейчас я использую для теста просто if ($ form-> isSubmitted ()) и результат ложный ... спасибо :(
  • 0
    print_r выводит данные поста? Чтобы увидеть ошибки, добавьте этот код foreach($form->getErrors(true) as $error) echo $error->getMessage()."<br/>\n"; после echo "no";
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню