Reklama: GRATIS wycena pozycjonowania strony , KLIKNIJ !
Łukasz Feller

offline

Łukasz Feller

programista PHP - symfony, Grupa eStorm Internet Technologies

Wypowiedzi

  • Łukasz Feller
    Wpis na grupie Symfony w temacie i18n - nie moge usunac pol z formularza
    5.07.2010, 23:35

    Temat stary, ale może się komuś przydać.

    Przede wszystkim embeddedForms nie zawierają nazw klas, które dołączamy do formularza, tylko nazwy WŁASNE, pod jakimi to robimy, np.

    $this->embedForm('nazwa_wlasna', klasa);

    Dlatego do formularzy i18n powinniśmy się odnosić następująco:

    $this->embedI18n(array('pl', 'en'));

    ...

    $this->embeddedForms['pl']...
    $this->embeddedForms['en']...

    Jeśli natomiast chcemy skutecznie wywalić jakieś pole z formularza dołączanego, możemy zastosować taki oto unset:

    unset(
    $this->embeddedForms['en']['pole'],
    $this->widgetSchema['en']['pole'],
    $this->validatorSchema['en']['pole']
    );

    Nadgorliwych odsyłam do funkcji unsetOffset - można tam podejrzeć co jeszcze da się usunąć ;-).

    Dlaczego osobno usuwamy widget i validator? Oto jest pytanie - próbowałem usuwać wyłącznie bezpośrednio powiązane pole z embeddedForms, ale mimo to ono nadal się wyświetlało. Prawdopodobnie podczas procedury podpinania podformularzy, robiona jest kopia (clone) naszego obiektu i embeddedForms oraz np. widgetSchema zawierają tak naprawdę 2 niepowiązane fizycznie ze sobą rzeczy. Tyle przynajmniej wywnioskowałem - jeśli się mylę, niech ktoś mnie poprawi.



    Zgłoś | Cytuj

Wyślij zaproszenie do