2017-11-03 6 views
1

Ich kann ein Etikett mit Zeichenfolge nicht verketten.Ich kann ein Etikett mit String in symfony3 nicht verketten

->add('originador', EntityType::class, array(
    'label' => "app.label.x_originador".'*', 
    'class' => 'AppBundle:Usuario', 
    'em' => $options['entityManager'], 
    'query_builder' => function (EntityRepository $er) { 
     return $er->createQueryBuilder('u');  
    }, 
    'placeholder' => '', 
    'required' => false, 
)) 

Im Teil 'label' => "app.label.x_originador".'*', ich, dass das Ergebnis Originador* sein muß, weil das Etikett für erforderlichen Wert ist.

Das Ergebnis, das ich empfangen ist app.label.x_originador*

Bitte, hilf mir Originador* als Ergebnis zu erhalten.

+1

Ihr Etikett sollte bereits die „erforderlich“ CSS-Klasse erhalten, zB. '' - also würde ich einfach dieses Sternchen an die css-Klasse anhängen: 'label.required :: after {content:" * "; } ' – ccKep

+0

Wenn dieses Feld auch benötigt wird - warum haben Sie am Ende dieses Elements' 'required' => false' gesetzt? – ccKep

+0

Ursache im Codieren aller Klassen und ich versuche, das Label zu arbeiten. Bevor ich andere Dinge anlege oder ändere, möchte ich das Ergebnis von "label" => "app.label.x_originador" erhalten. "*", Danach werde ich alle App ändern. – segoitz

Antwort

1

Sie können den Übersetzer Service für Ihren Formulartyp übergeben und dann wie folgt verketten translate:

 
class MyFormType extends AbstractType 
{ 
    private $translator; 

    public function __construct(TranslatorInterface $translator) 
    { 
     $this->translator = $translator; 
    } 

    /** 
    * @param FormBuilderInterface $builder 
    * @param array $options 
    */ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder 
      ->add('originador', EntityType::class, array(
       'label' => $this->translator->trans('app.label.x_originador',[], 'domain').'*', 
       'class' => 'AppBundle:Usuario', 
       'em' => $options['entityManager'], 
       'query_builder' => function (EntityRepository $er) { 
        return $er->createQueryBuilder('u'); 
       }, 
       'placeholder' => '', 
       'required' => false, 
      )); 
     } 
    } 

juste mit Ihrer Übersetzung Domain ersetzen „domain“.

EDIT: aber ja, die beste Lösung ist wahrscheinlich @ ccKep ist ein

+0

Ich habe diesen Fehler: Type error: Zu wenig Argumente zu funktionieren AppBundle \ Form \ Type \ Consulta3Type :: __ construct(), 0 übergeben in C: \ Web \ www \ kybse \ cis3 \ Hersteller \ symfony \ symfony \ src \ Symfony \ Component \ Form \ FormRegistry.php in Zeile 85 und genau 1 erwartet In der öffentlichen Funktion __construct (TranslatorInterface $ translator) – segoitz

Verwandte Themen