Forms Symfony“;无法加载类型“;服务yaml
我尝试在Symfony 2.2中为我的一个表单创建服务: service.yml:Forms Symfony“;无法加载类型“;服务yaml,forms,symfony,Forms,Symfony,我尝试在Symfony 2.2中为我的一个表单创建服务: service.yml: tyg_user.settings.form: class: Symfony\Component\Form\Form factory_method: createNamed factory_service: form.factory arguments: - tyg_user_settings - tyg_user_settings_name ty
tyg_user.settings.form:
class: Symfony\Component\Form\Form
factory_method: createNamed
factory_service: form.factory
arguments:
- tyg_user_settings
- tyg_user_settings_name
tyg_user.settings.form.type:
class: TyG\UserBundle\Form\Settings\SettingsFormType
tags:
- { name: form.type, alias: tyg_user_settings }
tyg_user.settings.form.handler:
class: TyG\UserBundle\Form\Settings\SettingsFormHandler
scope: request
arguments:
- @tyg_user.settings.form
- @request
- @fos_user.user_manager
setingsform.php
<?php
namespace TyG\UserBundle\Form\Settings;
use Symfony\Component\Form\FormBuilderInterface as FormBuilder;;
use Symfony\Component\Form\AbstractType;
class SettingsForm extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add('birthday', 'birthday')
->add('email', 'email')
->add('showmail')
->add('showbirthday')
;
}
public function getName()
{
return 'tyg_user_settings';
}
}
?>
当我通过服务容器获取表单时会发生这种情况:
$this->container->get('tyg_user.settings.form');
我过去确实是通过xml格式创建服务的,但当我改为yml格式时,我不知道如何使其工作tyg\u user\u settings\u name引用的是表单类型别名
如果希望它引用参数,则应使用
%tyg\u user\u settings\u name%
。使用xml格式时,不必引用参数。为什么我应该使用yaml格式?使用createNamed
factory\u方法是createNamed($name,$type='form'…etc
,第一个参数是名称。如果您不想命名它,那么您应该使用create
。请参见create
和createNamed
的第37行和第45行。实际上,我只是将我的symfony版本从2.0更改为2.2,createNamed参数也会更改,所以我只需要我必须交换我的论点:)
$this->container->get('tyg_user.settings.form');