0

我正在尝试将我的应用程序升级到 symfony 3。但是有一个我无法修复的弃用通知:

我的 Symfony 2 代码:

protected function configureFormFields(FormMapper $formMapper){
     ->add('town', 'sonata_type_model_autocomplete', array(
                'property'=>'name',
                'placeholder'=>'Select one',
                'label'=>'town.name,
     ));
}

弃用通知:

从 2.8 版开始,不推荐通过字符串名称访问类型“sonata_type_model_autocomplete”,并将在 3.0 中删除。改用完全限定的类型类名称“Sonata\AdminBundle\Form\Type\ModelAutocompleteType”

因此,要与 Symfony 3 兼容:

use Sonata\AdminBundle\Form\Type\ModelAutocompleteType;

protected function configureFormFields(FormMapper $formMapper){
             ->add('town', ModelAutocompleteType::class , array(
                        'property'=>'name',
                        'placeholder'=>'Select one',
                        'label'=>'town.name',
                        'model_manager'=> null
             ));
}

但我得到这个错误:

可捕获的致命错误:传递给 Sonata\AdminBundle\Form\DataTransformer\ModelToIdPropertyTransformer::__construct() 的参数 1 必须实现接口 Sonata\AdminBundle\Model\ModelManagerInterface,给定 null,在 /vendor/sonata-project/admin-bundle/Form 中调用/Type/ModelAutocompleteType.php 在第 37 行并定义

因此,我必须传递一个 ModelManagerInterface 对象,而不是 null,但我在哪里可以找到它?

感谢您阅读

4

0 回答 0