10 comentários em “Symfony2 Cheat-Sheet: Forms

  1. Jonas Ruth disse:

    Excelente dica Andréia!

    • Jonas Ruth disse:

      Ficou muito bom mesmo! Desculpe a pergunta, você fez a criação? Queria te dar parabéns, porque está impecável o trabalho.

      • Foi 🙂
        Grata!
        Agora, esperar um pouco pela API estável para lançar a próxima 😉
        O componente de formulários está ficando muito bom:
        https://github.com/symfony/symfony/commits/form

        <?php
        protected function _editAction(Post $post)
        {
        $em = $this->get('doctrine.orm.default_entity_manager');
        $factory = $this->get('form.factory');
        $form = $factory->create(new PostFormType());
        $form->setData($post);
        if ($this->get('request')->getMethod() === 'POST') {
        $form->bindRequest($this->get('request'));
        if ($form->isValid()) {
        $em->persist($post);
        $em->flush();
        return new RedirectResponse($this->generateUrl('hello_index'));
        }
        }
        return $this->render('MyHelloBundle:Hello:edit.html.twig', array(
        'form' => $form->createView(),
        ));
        }

        view raw
        Controller.php
        hosted with ❤ by GitHub

        <?php
        namespace My\HelloBundle\Form;
        use Symfony\Component\Form\FormBuilder;
        use Symfony\Component\Form\Type\AbstractType;
        use My\HelloBundle\Entity\Comment;
        class PostFormType extends AbstractType
        {
        public function buildForm(FormBuilder $builder, array $options)
        {
        $builder
        ->add('title')
        ->add('file')
        ->add('content')
        ->add('abstract')
        ->add('enabled')
        ->add('publicationDateStart', 'date')
        ->add('commentsDefaultStatus', 'choice', array(
        'choices' => Comment::getStatusCodes(),
        ))
        // the second parameter, $type, is null because we use auto-creation
        ->add('tags', null, array(
        'expanded' => true,
        'multiple' => true,
        ))
        ->build('author', 'form', array('data_class' => 'My\HelloBundle\Entity\Author'))
        ->add('firstName')
        ->add('lastName')
        ->end();
        }
        public function getDefaultOptions(array $options)
        {
        return array(
        'data_class' => 'My\HelloBundle\Entity\Post',
        );
        }
        public function getName()
        {
        return 'postform';
        }
        }

        view raw
        PostFormType.php
        hosted with ❤ by GitHub

        {% form_theme form _self %}
        {{ form_enctype(form) }}
        {{ form_widget(form) }}
        {{ form_widget(form.firstName) }}
        {% for child in form %}
        {{ form_widget(child) }}
        {% endfor %}
        {{ form_widget(form.firstName, { 'attr': { 'class': 'foobar' } }) }}
        {{ form_label(form.firstName, 'My label') }}

        view raw
        template.html.twig
        hosted with ❤ by GitHub

  2. Parabéns, Andreia. Ficou muito bom.

  3. COil disse:

    Very good as always ! Thank you. 🙂

  4. anonym disse:

    Not Symfony2 cheatsheet. Symfony 1 only.

  5. […] Symfony2 Forms Cheat Sheet by Andreia Bohner This entry was posted in Symfony by Thomas Quiroga. Bookmark the permalink. […]

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s