más entitás választás lista formájában

szavazat
2

Új vagyok a symfonys. Van egy legördülő formában adatokat lekérni a DB.

$builder->add('category', 'entity', array(
        'label' => 'category',
        'class' => 'MyBundle:category',
        'expanded' => false,
        'multiple' => false,
        'mapped' => false,
        'empty_value' => 'category'
    ));

    $builder->add('other_category', 'text', array(
        'label' => 'category',
        'required' => false,
        'invalid_message' => 'Please enter a valid category',
        'mapped' => false,
    ));

a felhasználó is új kategóriát az asztalra. ha más van kiválasztva a legördülő, a „other_category” beviteli mező jelenik meg, különben a rejtett. „Egyéb” adtunk legördülő segítségével ezt a kódot.

public function finishView(FormView $view, FormInterface $form, array $options)
{
    $new_choice = new ChoiceView(array(), 'other', 'Other');
    $view->children['category']->vars['choices'][] = $new_choice;
}

Ha egy opció van kiválasztva a legördülő formában működik. Az adatok kap tárolt hiba nélkül. De ha felhasználó a „másik”, és belép egy új kategória az oldal újratöltése a „Ez az érték nem érvényes” kategóriájába lehetőségeket, és nincs forma érvényesítés „other_category” felhasználó által beírt.

Tud valaki segíteni nekem a formában érvényesítési és belépő egy új kategóriát, vagy azt sugallják, egy jobb módja annak, hogy hajtsák végre a fenti funkciókat.

A kérdést 22/09/2015 10:47
a forrás felhasználó
Más nyelveken...                            


1 válasz

szavazat
0

Az érvényesítési hiba történik, mert a forma terén típusú entitás, de nincs „MyBundle: kategória” szervezet az azonosító értéke „más”.

Már nincs megadva a „CHOICE_LABEL” tulajdonság az Entity formában típusú úgyhogy feltételezik, hogy a „MyBundle: kategória” gazdálkodó egységnek __toString () függvényt. Ez azt jelentené, sem a „MyBundle: kategória” entitások visszaút „egyéb” saját __toString () függvényt.

Azt hiszem, két lehetőség lehet megkerülni ezt most:


1) Add a "MyBundle: kategória" entitás érték "más". Ez a legegyszerűbb módja, de ez meglehetősen feltételezzük, hogy nem akar egy ilyen kategória létezik az adatbázisban.

2) Helyezze a listán a „MyBundle: kategória” entitások előzetesen a vezérlőt, építeni azokat az asszociatív tömb, csatolja az „egyéb” opciót, hogy a tömb, akkor adja át a tömb formájában. Meg kéne cserélni a gazdálkodó forma típus egy Choice típus , és használja a kategóriákat tömb, mint a választás.

Ha a forma egy FormType osztály akkor meg kell adni a tömb az osztály kivitelező.


Ha nem bánod, egy új kategóriát az „egyéb” értéket a kategóriában asztalra, csak add meg. Egyébként megy 2 opció, ami nem fog nagy különbség, hogy mit csinál, miután megkapta a benyújtott formában ebben a formában mező nem leképezve az egység tulajdon egyébként.

Válaszolt 09/10/2015 03:42
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more