<?php
namespace Plugin\PiaContact\Form\Type;
use Eccube\Form\Type\AddressType;
use Eccube\Form\Type\KanaType;
use Eccube\Form\Type\NameType;
use Eccube\Form\Type\Master\SexType;
use Eccube\Form\Type\PhoneNumberType;
use Eccube\Form\Type\PostalType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Validator\Constraints as Assert;
class FormRecruitType extends AbstractType
{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', NameType::class, [
'required' => true,
])
->add('kana', KanaType::class, [
'required' => true,
])
->add('birth', DateType::class, [
'label' => '生年月日',
'required' => true,
'input' => 'datetime',
'widget' => 'single_text',
'format' => 'yyyy-MM-dd',
'html5' => true,
'attr' => [
'type' => 'date',
'max' => date('Y-m-d'),
],
'constraints' => [
new Assert\NotBlank(['message' => '生年月日を入力してください。']),
new Assert\LessThanOrEqual([
'value' => 'today',
'message' => '生年月日は今日以前の日付を入力してください。'
]),
],
])
->add('sex', SexType::class, [
'label' => '性別',
'required' => false,
])
->add('address', AddressType::class, [
'required' => true,
])
->add('email', EmailType::class, [
'required' => true,
'constraints' => [
new Assert\NotBlank(['message' => 'メールアドレスを入力してください。']),
new Assert\Email(['message' => 'メールアドレスの形式が正しくありません。']),
],
])
->add('tel', PhoneNumberType::class, [
'required' => true,
])
->add('zip', PostalType::class, [
'required' => true,
])
->add('final_education', TextType::class, [
'label' => '最終学歴',
'required' => true,
'constraints' => [
new Assert\NotBlank(['message' => '最終学歴を入力してください。']),
],
])
->add('graduation_date', TextType::class, [
'label' => '卒業年月',
'required' => true,
'constraints' => [
new Assert\NotBlank(['message' => '卒業年月を入力してください。']),
],
])
->add('free_area', TextareaType::class, [
'label' => '自由項目(応募動機・自己PR・ご質問など)',
'required' => false,
'attr' => [
'rows' => 5,
],
])
;
}
/**
* {@inheritdoc}
*/
public function getBlockPrefix()
{
return 'form_recruit';
}
}