Я создал код для тегов в Symfony, но у меня есть эта ошибка:
Ожидается, что автозагрузчик определит класс «Tag \ TagBundle \ Form \ Types \ TagsType» в файле »/var/www/html/TagProject/vendor/composer/../../src/Tag/TagBundle/Form/Types/ TagsType.php». Файл был найден, но класса в нем нет, возможно, имя класса или пространство имен содержит опечатку.
TagsType.php:
<?php
namespace Tag\TagBundle\Form\Types;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Tag\TagBundle\Form\DataTransformer\TagsTransformer;
use Symfony\Bridge\Doctrine\Form\DataTransformer\CollectionArrayTransformer;
use Symfony\Component\Form\FormBuilderInterface;
class TagsTypes extends AbstractType {
public function buildForm(FormBuilderInterface $builder, array $options){
$builder
->addModelTransformer(new CollectionArrayTransformer(),true)
->addModelTransformer(new TagsTransformer(),true);
}
public function getParent(){
return TextType::class;
}
}
}
TagsTransformer.php:
<?php
namespace Tag\TagBundle\Form\DataTransformer;
use Symfony\Component\Form\DataTransformerInterface;
class tagsTransformer implements DataTransformerInterface {
public function transform($value){
dump($value);
return "";
}
public function reverseTransform($value){
}
}
PostType.php:
<?php
namespace AppBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Tag\TagBundle\Form\Types\TagsType;
class PostType extends AbstractType
{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('name')
->add('content')
->add('tags',TagsType::class);
}
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'AppBundle\Entity\Post'
));
}
/**
* {@inheritdoc}
*/
public function getBlockPrefix()
{
return 'appbundle_post';
}
}
Ваша ошибка называет class
,
У вас есть TagsType.php это файл php, а имя вашего класса TagsTypes
:
Вы должны изменить class
название:
class TagsTypes
в
class TagsType
Других решений пока нет …