春咲さんのメモ。

自分メモ的な。主にPHPについて。github:mindlessdoll(冬眠してるけど)

Symfony2 Formの続き

はい、絶賛はまり中です。

 

とりあえず、クラス化しました。

Controller

use hoge\fugaBundle\Entity\Inquire;
use hoge\fugaBundle\Form\Type\InquireType;

public function caseAction(Request $request)
{
    $inquire = new Inquire();
    $form = $this->createForm(new InquireType());

    if ($request->getMethod() == 'POST') {
        $form->handleRequest($request);
        
        if ($form->isValid()) {
            return $this->render('fugaBundle:Inquire:caseConfirm.html.twig',
                    array('data' => $form->getData(),
                    'form' => $form->createView(),
            ));
        }
    }
    
    return $this->render('fugaBundle:Inquire:caseInput.html.twig', array(
            'form' => $form->createView(),
    ));
}

Entity

namespace hoge\fugaBundle\Entity;

class Inquire
{
    protected $name;
    protected $pref;
    
    public function getName()
    {
        return $this->name;
    }

    public function getPref()
    {
        return $this->pref;
    }

    public function setName($name)
    {
        $this->name = $name;
    }

    public function setPref($pref)
    {
        $this->pref = $pref;
    }
    
}

InquireType

namespace hoge\fugaBundle\Form\Type;

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

class InquireType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('name');
        $builder->add('pref', 'choice',array(
            'choices' => array(
                'tokyo'   => '東京',
                'saitama' => '埼玉',
                'kanagawa'=> '神奈川', 
            ),
            'multiple' => false,
            'expanded' => false,
        ));
    }

    public function getDefaultOptions(array $options)
    {
        return array('data_class' => 'hoge\fugaBundle\Entity\Inquire');
    }

    public function  getName()
    {
        return 'name';
    }
}


的な。このセットにたどり着くまでかなり時間がかかりました。あのね、文章読むのは好きなんだけど技術関係の文章読むのは不得意なのね…。流し読み的な。
とりあえず、これで、テキストボックスとプルダウンはできました。
あ、ついでにyml

validation.yml

hoge\fugaBundle\Entity\Inquire:
  properties:
    name:
      - NotBlank: { message: "入力してください!!!!!!" }
    pref:
      - NotBlank: ~

ってやってるんだけど。このmessageが出てくれなくて、大変困っております。

↓こんな感じが出るのね。ポップアップで。でもこれは必要としてないの…。もー!!!って感じでお盆休みに突入です…

f:id:aliceDream:20140814183412p:plain