app/Plugin/Recipe/Form/Type/SearchRecipeType.php line 16

Open in your IDE?
  1. <?php
  2. namespace Plugin\Recipe\Form\Type;
  3. use Doctrine\ORM\EntityManagerInterface;
  4. use Plugin\Recipe\Repository\CategoryRepository;
  5. use Plugin\Recipe\Repository\MaterialRepository;
  6. use Plugin\Recipe\Repository\TagRepository;
  7. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  8. use Symfony\Component\Form\AbstractType;
  9. use Symfony\Component\Form\Extension\Core\Type\HiddenType;
  10. use Symfony\Component\Form\Extension\Core\Type\SearchType;
  11. use Symfony\Component\Form\FormBuilderInterface;
  12. use Symfony\Component\OptionsResolver\OptionsResolver;
  13. class SearchRecipeType extends AbstractType
  14. {
  15.     /**
  16.      * @var CategoryRepository
  17.      */
  18.     protected $categoryRepository;
  19.     /**
  20.      * @var TagRepository
  21.      */
  22.     protected $tagRepository;
  23.     /**
  24.      * @var MaterialRepository
  25.      */
  26.     protected $materialRepository;
  27.     /**
  28.      * @var EntityManagerInterface
  29.      */
  30.     protected $entityManager;
  31.     /**
  32.      * SearchRecipeType constructor.
  33.      *
  34.      * @param CategoryRepository $categoryRepository
  35.      */
  36.     public function __construct(
  37.       CategoryRepository $categoryRepository,
  38.       TagRepository $tagRepository,
  39.       MaterialRepository $materialRepository,
  40.       EntityManagerInterface $entityManager
  41.     )
  42.     {
  43.         $this->categoryRepository $categoryRepository;
  44.         $this->tagRepository $tagRepository;
  45.         $this->materialRepository $materialRepository;
  46.         $this->entityManager $entityManager;
  47.     }
  48.     /**
  49.      * {@inheritdoc}
  50.      */
  51.     public function buildForm(FormBuilderInterface $builder, array $options)
  52.     {
  53.         $Categories $this->categoryRepository
  54.             ->getList(nulltrue);
  55.         $Tags $this->tagRepository
  56.             ->getList(nulltrue);
  57.         $Materials $this->materialRepository
  58.             ->getList(nulltrue);
  59.         $builder->add('mode'HiddenType::class, [
  60.             'data' => 'search',
  61.         ]);
  62.         $builder->add('category_id'EntityType::class, [
  63.             'class' => 'Plugin\Recipe\Entity\Category',
  64.             'choice_label' => 'name',
  65.             'choices' => $Categories,
  66.             'required' => false,
  67.         ]);
  68.         $builder->add('tag_id'EntityType::class, [
  69.             'class' => 'Plugin\Recipe\Entity\tag',
  70.             'choice_label' => 'name',
  71.             'choices' => $Tags,
  72.             'required' => false,
  73.         ]);
  74.         $builder->add('material_id'EntityType::class, [
  75.             'class' => 'Plugin\Recipe\Entity\material',
  76.             'choice_label' => 'name',
  77.             'choices' => $Materials,
  78.             'required' => false,
  79.         ]);
  80.         $builder->add('name'SearchType::class, [
  81.             'required' => false,
  82.             'attr' => [
  83.                 'maxlength' => 50,
  84.                 'placeholder' => '料理名・食材でレシピを検索',
  85.             ],
  86.         ]);
  87.         $builder->add('pageno'HiddenType::class, []);
  88.     }
  89.     /**
  90.      * {@inheritdoc}
  91.      */
  92.     public function configureOptions(OptionsResolver $resolver)
  93.     {
  94.         $resolver->setDefaults([
  95.             'csrf_protection' => false,
  96.             'allow_extra_fields' => true,
  97.         ]);
  98.     }
  99.     /**
  100.      * {@inheritdoc}
  101.      */
  102.     public function getBlockPrefix()
  103.     {
  104.         return 'search_recipe';
  105.     }
  106. }