/
DeliveryTimeType.php
89 lines (83 loc) · 2.58 KB
/
DeliveryTimeType.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<?php
/*
* This file is part of EC-CUBE
*
* Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved.
*
* http://www.ec-cube.co.jp/
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Eccube\Form\Type\Admin;
use Doctrine\ORM\EntityRepository;
use Eccube\Entity\DeliveryTime;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\FormEvent;
use Symfony\Component\Form\FormEvents;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Constraints as Assert;
class DeliveryTimeType extends AbstractType
{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('delivery_time', TextType::class, [
'label' => false,
'attr' => [
'placeholder' => 'common.select',
],
'constraints' => [
new Assert\NotBlank(),
],
])
->add('sort_no', HiddenType::class, [
'label' => false,
'constraints' => [
new Assert\NotBlank(),
],
])
->add('visible', ChoiceType::class, [
'label' => false,
'choices' => ['admin.common.show' => true, 'admin.common.hide' => false],
'required' => false,
'expanded' => false,
])
;
$builder->addEventListener(FormEvents::POST_SUBMIT, function (FormEvent $event) {
/** @var DeliveryTime $DeliveryTime */
$DeliveryTime = $event->getData();
if (null === $DeliveryTime->isVisible()) {
$DeliveryTime->setVisible(true);
}
});
}
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => 'Eccube\Entity\DeliveryTime',
'query_builder' => function (EntityRepository $er) {
return $er
->createQueryBuilder('dt')
->orderBy('dt.sort_no', 'ASC');
},
]);
}
/**
* {@inheritdoc}
*/
public function getBlockPrefix()
{
return 'delivery_time';
}
}