Symfony“无法加载类型”服务yaml

时间:2013-04-05 09:30:36

标签: 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
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

SettingsForm.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';
  }
}
?>

但是出错了:

Could not load type "tyg_user_settings_name

当我通过服务容器获取表单时会发生这种情况:

$this->container->get('tyg_user.settings.form');

我曾经通过xml格式创建我的服务但是当我更改为yml格式时,我无法弄清楚如何使其工作

1 个答案:

答案 0 :(得分:2)

tyg_user_settings_name引用了表单类型别名。

如果您希望它引用参数,请改为使用%tyg_user_settings_name%