在Symfony 2.4中,我想通過服務創建一個註冊表單。我玩弄了服務配置和表單組件工廠,但每次我得到以下異常:Symfony 2.4通過服務創建表單
可捕獲的致命錯誤:將參數1傳遞給Symfony \ Component \ Form \ Form :: __ construct()必須是Symfony的一個實例\分量\表格\ FormConfigInterface,給予
代碼如下Bestxtech \ UserBundle \表格\ RegistrationType的實例:
services:
bestxtech.form.type.registration:
class: Bestxtech\UserBundle\Form\RegistrationType
arguments: [null]
tags:
- { name: form.type, alias: registration }
public: flase
bestxtech.form.registration:
factory-method: create
factory-service: form.factory
class: Symfony\Component\Form\Form
arguments: ["@bestxtech.form.type.registration"]
RegistrationType作爲
//Bestxtech\UserBundle\Form\RegistrationType
<?php
namespace Bestxtech\UserBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
class RegistrationType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('username')
->add('plainPassword', 'repeated', array(
'type' => 'password',
'first_options' => array('label' => 'Password'),
'second_options' => array('label' => 'Confirm password'),
'invalid_message' => 'Password mismatch'
))
->add('email', 'email', array('label' => 'Email address'));
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Bestxtech\UserBundle\Entity\User',
'validation_groups' => array('Registration')
));
}
public function getName()
{
return 'user';
}
}
如果有人能給我一些建議,會很好,謝謝。
你能告訴我一個正確的服務定義。我嘗試編輯這樣的: 參數: bestxtech.form.type.registration.class:Bestxtech \ UserBundle \表格\ RegistrationType 服務: bestxtech.form.registration: 工廠方法:創建 廠服務: form.factory 類:Symfony的\元器件\表格\表格 參數:[%bestxtech.form.type.registration.class%] ,但我仍然以下例外:傳遞給Symfony的\元器件\表格\ 參數1 Form :: __ construct()必須是Symfony \ Component \ Form \ FormConfigInterface的一個實例,給出的字符串爲 – Gavntery
非常感謝!現在出現了一個新的錯誤。我正在嘗試修復它。 – Gavntery