我正在閱讀Data Transformations我在我的代碼中修改了一些。我越來越Symfony 2如何找到自定義表單類型?
未能加載類型 「csv2tags」
我有一個自定義表單類型
class CSV2TagsType extends AbstractType {
public function buildForm(FormBuilder $builder, array $opts) {
$builder->appendClientTransformer(new CSV2TagsTransformer());
}
public function getParent() {
return 'text';
}
public function getName() {
return 'csv2tags';
}
}
使用變壓器:
class CSV2TagsTransformer implements DataTransformerInterface {
/**
* @var EntityManager
*/
protected $em;
public function __construct(EntityManager $em) {
$this->em = $em;
}
// ...
}
在services.yml
services:
jm.blog.csv2tagsTransformer:
class: JM\BlogBundle\Form\DataTransformer\CSV2TagsTransformer
arguments: ["@doctrine.orm.entity_manager"]
幾個問題:
- 我搬到
EntityManager
到變壓器,而不是形式的類型,行嗎? - 我沒有爲文檔中的變壓器服務聲明別名。我認爲表單類型的別名來自
AbstractType::getName()
函數?我是否需要將自定義表單類型聲明爲服務 - 我將
EntityManager
移至變壓器。沒有EntityManager
,我做了new CSV2TagsTransformer()
,我做了正確的事嗎?
+1,偉大的答案 – greg0ire