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 翻译接口错误,can';不要以其他应用程序中使用的形式使用工具提示_Forms_Symfony_Tooltip - Fatal编程技术网

Forms 翻译接口错误,can';不要以其他应用程序中使用的形式使用工具提示

Forms 翻译接口错误,can';不要以其他应用程序中使用的形式使用工具提示,forms,symfony,tooltip,Forms,Symfony,Tooltip,我正在尝试为我的addressType创建工具提示。对此,我有以下几点看法 use Symfony\Component\Translation\TranslatorInterface; class AddressType extends AbstractType{ /** * @var TranslatorInterface */ private $translator; /** * @param TranslatorInterface $translator */

我正在尝试为我的addressType创建工具提示。对此,我有以下几点看法

use Symfony\Component\Translation\TranslatorInterface;



class AddressType extends AbstractType{
   /**
 * @var TranslatorInterface
 */
private $translator;


 /**
 * @param TranslatorInterface $translator
 */
 public function __construct(TranslatorInterface $translator)
{
    $this->translator = $translator;
}

public function buildForm(FormBuilderInterface  $builder, array $options){
    $builder->add(
            'country','text', array(
            'label' => 'address.country',
            'translation_domain' => 'messages' ,
            'required' => true,
            'attr' => array('class'=>"tooltipped",
             'data-position' =>"bottom", 
             'data-delay '=>"50",
             'data-tooltip' => $this->translator->trans('help.tooltips.address.country'))
我已经为其他形式做了多次,而且效果很好。然而,问题是我的addressType被用于另一个名为customerType的表单,该表单还包含工具提示和转换器。我在那里使用的工具提示工作正常。但是当我添加addresstype时,它崩溃了

->add(
            'address', new AddressType(),array( // line 84
            'label'=>false,
            'required' => false,
我得到的错误如下:

可捕获的致命错误:传递给AppBundle\Form\AddressType::\uu construct()的参数1必须实现接口Symfony\Component\Translation\TranslatorInterface,未给定,在第84行的C:\Users\KevinDeLeeuw\Documents\Githuble\mountguru\src\AppBundle\Form\CustomerType.php中调用并定义


我的问题是如何解决这个问题,或者这样的事情是不允许的?

您可以在自定义表单中创建新的
AddressType
对象,而不是此传递表单名称(AddressType::class(适用于symfony 2.8+)


当然,您需要将您的地址表单类型定义为服务

我将地址表单添加为服务,但是我不知道数组[]中应该包含什么,因为现在它说它无法加载表单类型您使用的是哪个版本的symfony?如果是2.8+只需将
newaddresstype()
替换为
AddressType::class
我正在使用symfony2.7reset,它就注意到了。还是说需要争论。可捕获的致命错误:传递给AppBundle\Form\AddressType::\uu construct()的参数1必须是AppBundle\Form\MyService的实例,未给定,在第85行的C:\Users\KevinDeLeeuw\Documents\GitHub\mountguru\src\AppBundle\Form\UserAccountType.php中调用并定义检查此项
->add('address', AddressType::class, [...])