1
FormBuilderInterface의 입력 텍스트 필드 대신 드롭 다운 (카테고리, 하위 카테고리)을 만들 때 문제가 발생했습니다. 다시 텍스트 입력으로 변경하면 모든 작업이 양호합니다."string"유형의 예상 인수
여기 FormType
내가 문제를 이해namespace Expatservice\ManagerBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\FileType;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
use Doctrine\ORM\EntityRepository;
class ServiceType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('title')
->add('category', EntityType::class, array(
'class' => 'ExpatserviceCategoryBundle:Category',
'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('c')
->where('c.parent = 0')
->orderBy('c.title', 'ASC');
},
'choice_value' => 'title',
'choice_label' => 'title'
))
->add('subcategory', EntityType::class, array(
'class' => 'ExpatserviceCategoryBundle:Category',
'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('c')
->where('c.parent = 2')
->orderBy('c.title', 'ASC');
},
'choice_value' => 'title',
'choice_label' => 'title'
))
->add('description')
->add('image', FileType::class, array('data_class' => null, 'required'=>false));
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaultOptions(array('data_class' => 'Expatservice\ManagerBundle\Entity\Service'));
}
public function getName()
{
return 'expantservice_managerbundle_service';
}
}
내 코드이지만, 그것을 해결하기 위해 인터넷에서 아무것도 발견하지 않는 방법을 알아낼 수 없습니다.
귀하의 질문이 명확하지 않다. 오류가 발생한 행을 알려주고 그 행을 지적 할 수 있습니까? 감사! –
정확하게 이해하고 있는지 모르겠지만 해당 엔터티가 '__toString()'함수로 구현되어 있습니까? – pusle
Alvin, 정확한 문자열 : "예상되는 인수 유형"string ","Expatservice \ CategoryBundle \ Entity \ Category "가" 인 경우 UnexpectedTypeException : if (! is_scalar ($ value) &&! (is_object ($ value) && method_exists ($ value, '__toString'))) { throw 새 UnexpectedTypeException ($ value, 'string'); } $ stringValue = (string) $ value; –