我刚刚将symfony从2.7更新到3.0,并遇到了一些麻烦。
它无法加载我的表单类型。这是一个例子。
services.xml
app.search:
class: AppBundle\Form\Type\SearchFormType
tags:
- { name: form.type, alias: app_search }
那就是我试图创建表格的方式。
$form = $this->createForm('app_search', new Search());
SearchFormType
namespace AppBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
class SearchFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('phrase', 'text');
}
public function getBlockPrefix()
{
return 'app_search';
}
}
得到下一个错误:
在...中渲染模板期间引发了异常(“无法加载类型为“ app_search”的”)。
在symfony 3.0中应该是什么样子?
谢谢 !
您应该将设置更改为。
app.search:
class: AppBundle\Form\Type\SearchFormType
tags:
- { name: form.type }
并以您的表格类型
use Symfony\Component\Form\Extension\Core\Type\TextType;
// ...
$builder->add('phrase', TextType::class);
然后使用...
$form = $this->createForm(SearchFormType::class, new Search());
// or $form = $this->createForm('AppBundle\Form\Type\SearchFormType', new Search());
它的长处和短处是不再为表单命名,它们由类名引用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句