2016-08-09 84 views
0

Ich versuche, Eingaben mit benutzerdefinierten Beschriftungen (basierend auf anderen Entitätsattribut) zu haben.Wie Wert an Zweig in Symfony2 übergeben werden

private $kilos_maxlim; 
private $precio; 

Ich setze die Werte von $kilos_maxlim im Konstruktor der Klasse. Also, ich habe dieses Feld gefüllt. Ich möchte eine Eingabe von $precio aber mit dem Label basierend auf dem Wert $kilos_maxlim zeigen.

Ich habe dieses Eingabefeld in der classtype:

->add('precio', null, array(
    'attr' => array('autofocus' => true), 
    'label' => 'label.precio', 
)) 

Wie kann ich den Wert übergeben, ohne eine Eingabe zu sein?

Antwort

2

Es soll dies so einfach funktionieren:

public function buildForm(FormBuilderInterface $builder, array $options) { 
    // get the actual entity 
    $entity = $builder->getData(); 

    // set the value as the label 
    $builder->add('precio', null, array(
     'label' => 'label.precio ' . $entity->getKilosMaxlim(), 
    )); 
} 
+0

Es Würfe: Call auf eine Elementfunktion getKilosMaxlim() auf einem Nicht-Objekt. Aber wenn ich die $ -Entität ablege, scheint es der richtige Klassentyp zu sein. – jmunozco

+0

Ich habe dies in configureOptions-Methode: $ Resolver-> setDefaults (Array ( 'Datenklasse' => 'AppBundle \ Entity \ TarifaPeso', )); Das ist auch die richtige Klasse – jmunozco

+0

Wenn Sie 'var_dump ($ entity);' nach '$ entity = $ builder-> getData();' aufrufen und die richtige Klasse mit den richtigen Werten anzeigt, aber $ Entity-> getKilosMaxlim() 'funktioniert nicht, es scheint ein Tippfehler in' $ entity-> getKilosMaxlim() 'zu sein. – insertusernamehere