Forms 翻译接口错误,can';不要以其他应用程序中使用的形式使用工具提示
我正在尝试为我的addressType创建工具提示。对此,我有以下几点看法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 */
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, [...])