Search code examples
phpfilesymfony4

How can i solve the problem with FileType Key "class" for array with keys


I add to my form type FileType from Symfony\Component\Form\Extension\Core\Type\FileType;

namespace App\Form;

use App\Entity\Order;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\FileType;


class OrderType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('subject',null,[
                'required' => true
            ])
            ->add('key')
            ->add('type')
            ->add('message')
            ->add('file',FileType::class)    
            ->add('submit', SubmitType::class, ['label' => 'Save'])    
        ;
    }

When I try run this, I have got this error:

Key "class" for array with keys "value, attr, form, id, name, full_name, disabled, label, label_format, multipart, block_prefixes, unique_block_prefix, translation_domain, cache_key, errors, valid, data, required, size, label_attr, help, help_attr, compound, method, action, submitted, type" does not exist.


Solution

  • You can pass in attr parameter

    $builder
        ->add('subject',null,[
              'required' => true
        ])
        ->add('key')
        ->add('type')
        ->add('message')
        ->add('file', FileType::class, [  //<-----HERE
                 'attr' => ['class'=>'myClass'],  //<-----HERE
        ]) //<-----HERE
        ->add('submit', SubmitType::class, ['label' => 'Save'])    
    ;
    

    More info in the docs: https://symfony.com/doc/current/reference/forms/types/form.html#attr