![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 247 Pomógł: 5 Dołączył: 10.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam, Mam kod
Jak coś takiego mogę osiągnąć używając formularzy z symfony? Potrzebuję jakoś renderować te radio inputy pojedynczo... |
|
|
![]()
Post
#2
|
|
Grupa: Nieautoryzowani Postów: 2 249 Pomógł: 305 Dołączył: 2.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Przeczytaj to dokładnie => Rendering each Field by Hand.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 247 Pomógł: 5 Dołączył: 10.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
{% block _my_moviesbundle_orderscarriertype_carrier_2_widget %}
<td class="carrier_action radio"> {{ block('radio_widget') }} </td> <td class="carrier_name"><label for="id_carrier2">{{ carriers[1] }}</label></td> <td class="carrier_infos">{{ carriers[1].description }}</td> <td class="carrier_price"><span class="price">{{ carriers[1].price|price }}</span></td> {% endblock %} Dostaje błąd Variable "carriers" does not exist... Czy idę w dobrym kierunku? Jeśli udało by mi się uzyskać dostęp do tych zmiennych to było by już gotowe Ten post edytował mimol 20.02.2013, 18:22:14 |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Carriers to zmienna przekazana do widoku. Wszystko więc zależy od tego co i jak chcesz tam wepchnąć. Przykładowo ja sobie w pewnych wypadkach rejestruję pewne dodatkowe zmienne podczas tworzenia formularza i wymagam ich poprzez zmienną $options. Jest to dość popularna technika. Zmienną taką potem w twigu mogę dość swobodnie operować. To co Ty robisz to niejako pójście o jeszcze jeden krok dalej... Tyle że moim zdaniem o jeden za daleko (IMG:style_emoticons/default/wink.gif) Owszem możesz iść w stylizację konkretnych pól na zasadzie widocznej tutaj choćby: http://symfony.com/doc/master/cookbook/for...tomization.html , ale może to już być nieco zbyt skomplikowane jeśli nie ogarniasz jeszcze zbytnio symfony2, ponieważ wiele rzeczy w dokumentacji i cookbooku na ten temat nie ma. O tym, że części rzeczy nie dowiesz się bez grzebania w bebechach, nie wspomnę (IMG:style_emoticons/default/smile.gif) Podpowiem tylko jedno... Wspomniany na cookbooku plik https://github.com/symfony/symfony/blob/2.1...ayout.html.twig to naprawdę świetny punkt wyjścia do rozgryzania stylizacji od środka. Ale to już podejście dla osób, które coś w Symfony2 liznęły i jakoś kumają Twiga. Inaczej po prostu to zderzenie z niezrozumałym klocem kodu.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 247 Pomógł: 5 Dołączył: 10.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
@thek
Dzięki, już sobie poradziłem, jednak pojawił się DUŻOOOO większy problem
Odnośnie problemu...
Jeśli dopiszę extended => true (wtedy jest renderowana jako radio input) to formularz przechodzi walidacje dla NIE POPRAWNEGO carrier_id (takiego, którego nie ma w bazie). Nie wiem, czy tylko ja zaobserwowałem taki przypadek, czy to jest jakaś luka w bezpieczeństwie. |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Nie... Problemem jest to, że w encjach połączonych relacjami trzeba dodatkowo wymusić walidację także w encjach zależnych, inaczej domyślnie nie jest ona przeprowadzana. Kiedyś było to przeprowadzane zawsze, ale jak słusznie zauważono, jest to w wielu przypadkach bezsensowne. Przykład? Walidując jakąś operację zakupu, walidujesz także produkt jakiego on dotyczy? Nie (IMG:style_emoticons/default/smile.gif) Potrzebny Ci tylko jego identyfikator. Dlatego zostało to zarzucone i obecnie jeśli chcesz coś zależnego zwalidować, oznaczasz to ustawiając na true opcję cascade_validation podczas definiowania form type LUB w definicji encji przy relacji oznaczamy, iż powinno się używać walidacji. Jak? @Assert/Valid ale nie wiem jak Ty masz całość zbudowaną więc zobacz w sieci oba warianty i wybierz ten dla siebie.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 23:12 |