Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Forms Symfony“;无法加载类型“;服务yaml_Forms_Symfony - Fatal编程技术网

Forms Symfony“;无法加载类型“;服务yaml

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

我尝试在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
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');