Forms 无法在symfony3中加载类型
我有symfony 3.3,在创建表单时遇到了这个问题 当我在控制器中实例化表单时,会显示错误 以下是所涉及的课程: 表格。Forms 无法在symfony3中加载类型,forms,symfony,types,load,Forms,Symfony,Types,Load,我有symfony 3.3,在创建表单时遇到了这个问题 当我在控制器中实例化表单时,会显示错误 以下是所涉及的课程: 表格。 namespace AppBundle\Form; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\Form\Extension\Core\Type\TextType;
namespace AppBundle\Form;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
use AppBundle\Entity\Departamento;
use Symfony\Component\Form\AbstractType;
class DepartamentoType extends AbstractType {
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('nombreDepartamento',TextType::class)
->add('planta', IntegerType::class)
->add('edificio',TextType::class)
->add('ciudadDepartamento',TextType::class)
;
}
/**
* @param OptionsResolverInterface $resolver
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => Departamento::class
));
}
/**
* @return string
*/
public function getName()
{
return 'appbundle_departamento';
}
}
namespace AppBundle\Controller;
use AppBundle\Entity\Departamento;
use AppBundle\Form\DepartamentoType;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
class DepartamentoController extends Controller{
/**
* @Route("/departamento_new", name="departamento_new")
*/
public function newAction(Request $request)
{
$departamento = new Departamento();
$formulario = $this->createForm(
DepartamentoType::class,
$departamento,
array('action' => $this->generateUrl('departamento_create'),
'method' => 'POST')
);
return $this->render('departamento/new_edit.html.twig', [
'formulario' => $formulario->createView(),
]);
}
控制器。
namespace AppBundle\Form;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
use AppBundle\Entity\Departamento;
use Symfony\Component\Form\AbstractType;
class DepartamentoType extends AbstractType {
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('nombreDepartamento',TextType::class)
->add('planta', IntegerType::class)
->add('edificio',TextType::class)
->add('ciudadDepartamento',TextType::class)
;
}
/**
* @param OptionsResolverInterface $resolver
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => Departamento::class
));
}
/**
* @return string
*/
public function getName()
{
return 'appbundle_departamento';
}
}
namespace AppBundle\Controller;
use AppBundle\Entity\Departamento;
use AppBundle\Form\DepartamentoType;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
class DepartamentoController extends Controller{
/**
* @Route("/departamento_new", name="departamento_new")
*/
public function newAction(Request $request)
{
$departamento = new Departamento();
$formulario = $this->createForm(
DepartamentoType::class,
$departamento,
array('action' => $this->generateUrl('departamento_create'),
'method' => 'POST')
);
return $this->render('departamento/new_edit.html.twig', [
'formulario' => $formulario->createView(),
]);
}
这就是我试图创造形式的方式
这就是错误:
无法加载类型“AppBundle\Form\DepartmentOtype”
Symfony\Component\Form\Exception\InvalidArgumentException
自动配置
选项是在Symfony 3.3中添加的
如果您没有使用自动配置
,请确保使用表单标记
您的服务。键入
例如:
app.departamento:
class: AppBundle\Form\DepartamentoType
tags:
- { name: form.type }
供参考:
使用表单类型服务定义,修复了以下错误
无法加载类型“AppBundle\Form\DepartmentOtype”Symfony\Component\Form\Exception\InvalidArgumentException
(我认为)对于@Lucas Leonel Azzolini来说是个特例,他犯了以下错误
试图从命名空间“AppBundle\Form”加载类“departmentOtype”。是否忘记了另一个命名空间的“use”语句
在他的项目中,departmentotype.php文件路径位于
src\Form
中。然后他将文件移动到AppBundle
目录中,如下所示:src\AppBundle\Form
,并修复了错误。在服务中自动配置的价值是什么。(yml、php、xml)?@LugiHaue我在与表单和控制器的“服务”关系中没有配置。@LucasLeonelAzzollini app/config/services.ymlThanks,现在我有另一个错误…”试图从命名空间“AppBundle\form”加载类“departmentotype”。您忘记了另一个名称空间的“use”语句了吗?@LucasLeonelAzzollini departmentotype.php的完整路径是什么?src\Form\departmentotype.phpWhy src\Form not src\AppBundle\Form?为类型创建服务有什么意义?