表单生成期间出错:无法加载类型 "CustomType"
Error during form generation: Could not load type "CustomType"
执行createForm
方法时出错。
InvalidArgumentException: Could not load type "ArticleType"
我的 symfony 版本是 3.3.*
。
我试图用 Article::class
而不是 ArticleType::class
来执行 createForm
方法。
这是我的代码,问题出在哪里?
ArticleController.php
public function createAction(Request $request)
{
$article = new Article();
$form = $this->createForm(ArticleType::class, $article);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
// ...
}
return $this->render('admin/article/create.html.twig', [
'form' => $form->createView()
]);
}
ArticleType.php
class ArticleType extends AbstractType
{
private $categoryService;
private $tagService;
public function __construct(CategoryService $categoryService, TagService $tagService)
{
$this->categoryService = $categoryService;
$this->tagService = $tagService;
}
/**
* @param FormBuilderInterface $builder
* @param array $options
*/.
public function buildForm(FormBuilderInterface $builder, array $options)
{
// ...
}
public function setDefaultOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => 'CMS\Bundle\ContentBundle\Entity\Article'
]);
}
}
Resources/config/services.yml(包含在app/config/services.yml)
services:
CMS\Bundle\ContentBundle\Form\ArticleType:
arguments: ['@cms.core.service.category', '@cms.core.service.tag']
tags: [form.type]
.
您的自定义表单 class 似乎无法在当前命名空间中找到。尝试将 use CMS\Bundle\ContentBundle\Form\ArticleType;
(或类似的东西)添加到您的控制器。
执行createForm
方法时出错。
InvalidArgumentException: Could not load type "ArticleType"
我的 symfony 版本是 3.3.*
。
我试图用 Article::class
而不是 ArticleType::class
来执行 createForm
方法。
这是我的代码,问题出在哪里?
ArticleController.php
public function createAction(Request $request)
{
$article = new Article();
$form = $this->createForm(ArticleType::class, $article);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
// ...
}
return $this->render('admin/article/create.html.twig', [
'form' => $form->createView()
]);
}
ArticleType.php
class ArticleType extends AbstractType
{
private $categoryService;
private $tagService;
public function __construct(CategoryService $categoryService, TagService $tagService)
{
$this->categoryService = $categoryService;
$this->tagService = $tagService;
}
/**
* @param FormBuilderInterface $builder
* @param array $options
*/.
public function buildForm(FormBuilderInterface $builder, array $options)
{
// ...
}
public function setDefaultOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => 'CMS\Bundle\ContentBundle\Entity\Article'
]);
}
}
Resources/config/services.yml(包含在app/config/services.yml)
services:
CMS\Bundle\ContentBundle\Form\ArticleType:
arguments: ['@cms.core.service.category', '@cms.core.service.tag']
tags: [form.type]
.
您的自定义表单 class 似乎无法在当前命名空间中找到。尝试将 use CMS\Bundle\ContentBundle\Form\ArticleType;
(或类似的东西)添加到您的控制器。