![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 191 Pomógł: 7 Dołączył: 3.04.2013 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Chcę wyświetlić w formularzu dla pola entity wszystkie pola kolumny tego entity z bazy danych w formularzu przy radio button. (kolumny takie jak opis, cena) W tej chwili mogę pobrać tylko jedno pole (choice_label w form type), jak coś takiego zrobić przez entityType::class? Domyślam się że pewnie będę musiał stworzyć nowe pole typu formularza, a może się jednak da przez entity type? Pracuję na symfony 3. edit: Czy może najlepszym wyjściem jest pominięcie formularzy symfonowych i zrobienie tego w zwykłym htmlowym formularzu, a dane po prostu pobrać z bazy danych i ustawić w widoku ? Może wyjaśnię to bardziej: Chcę wyświetlić przy polu formularza 3 dane pochodzących z pola entity: nazwe, opis i cene. Polem tym jest radio button. Normalnie mogę z tych danych pobrać tylko jedną daną, poprzez atrybut choice_label w formType. W tym formularzu chcę wybrać metodę przesyłki gdzie opisem mają być te trzy dane umieszczone w różnych miejscach, wiem że trzeba będzie przygotować form_widget dla tego pola. Ten post edytował Crash89 13.01.2017, 17:20:43 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 872 Pomógł: 94 Dołączył: 31.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Czemu po prostu nie ustawisz atrybutu choice_label na wartość stworzoną z tych 3 pól? Umieszczenie tego w widoku będzie o tyle problematyczne, że musisz rozbić wtedy cały formularz i nie wyrenderujesz go prostą funkcją twiga (nie pamiętam jak to w symfony było).
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
No to jaki problem w entity zrobić:
A w formularzu:
Drugie rozwiązanie, to dodanie callbacka w samym formularzu (gdy nie chcesz zaśmiecać encji nawet takimi metodami) - jest to przecież wyraźnie opisane w dokumentacji. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 191 Pomógł: 7 Dołączył: 3.04.2013 Ostrzeżenie: (0%) ![]() ![]() |
Tak, ale ja chcę je osobno ostylować a tutaj nie mam takiej możliwośći.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 623 Pomógł: 144 Dołączył: 22.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Co chcesz konkretnie ostylować?
Robisz pole jako EntityType (z expanded => true, multiple => false - czyli generujesz radiochoice) , tak jak koledzy niżej pisali, dorzucasz callbacka żeby pobrać wybrane dane. W twigu w którym renderujesz formularz zmieniasz mu na własny form_theme na jakiś Twój utworzony w którym możesz sobie dowoli stylować wybrane bloki https://symfony.com/doc/current/form/form_c...theming-in-twig Cytat Czy może najlepszym wyjściem jest pominięcie formularzy symfonowych i zrobienie tego w zwykłym htmlowym formularzu, a dane po prostu pobrać z bazy danych i ustawić w widoku ? Raczej polecam używać formularzy z symfony, jeśli je ogarniesz to będzie Ci w przyszłości dużo łatwiej i szybciej tworzyć kolejne formularze. Nie mówiąc już o dużo wygodniejszej walidacji takich formularzy oraz zapisie danych przez nie. Ten post edytował ohm 16.01.2017, 11:54:54 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 191 Pomógł: 7 Dołączył: 3.04.2013 Ostrzeżenie: (0%) ![]() ![]() |
Jeden wiersz formularza (wyboru przesyłek może być kilka) zawiera opis, cene online i cene przy odbiorze.
Chcę oddzielnie ostylować opis i ceny, tak żeby to jakoś wyglądało. A nie wszystko w jednej linii, jak się dzieje w tym wypadku przy dodaniu metody w entity. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 602 Pomógł: 30 Dołączył: 1.08.2007 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 191 Pomógł: 7 Dołączył: 3.04.2013 Ostrzeżenie: (0%) ![]() ![]() |
Poczytałem i chyba wiem co należy zrobić ale nie mogę znaleźć linijki kodu która odpowiada za wyświetlenie choice_label w formularzu, robię to tak:
W entity tworzę nową metodę:
W formularzu dodaję je jako choice label. I tutaj przed formularzem nadpisuję ten widget:
Niestety to nie przynosi efektu, w widoku zostają wyświetlone tagi html (span) a chcę żeby tego nie wyświetlało. Nie wiem czy to odpowiada za wyświetlenie choice_label dla expanded w symfony. Wydaje mi się że wystarczy znaleźć to miejsce i dodać raw do tego i będzie po problemie. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 602 Pomógł: 30 Dołączył: 1.08.2007 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
Musisz powiedzieć systemowi szablonów, że dla Twojego formularza używasz innego theme formularzy.
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 191 Pomógł: 7 Dołączył: 3.04.2013 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 602 Pomógł: 30 Dołączył: 1.08.2007 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
Ciężko mi jest powiedzieć cos więcej bo dawno nie stylizowałem szablonów, ale zobacz na githuba do domyślnego stylu i podmień to co potrzebujesz:
https://github.com/symfony/symfony/blob/mas...ayout.html.twig A pozostałe masz tutaj: https://github.com/symfony/symfony/tree/mas...rces/views/Form |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 191 Pomógł: 7 Dołączył: 3.04.2013 Ostrzeżenie: (0%) ![]() ![]() |
Ciężko mi jest powiedzieć cos więcej bo dawno nie stylizowałem szablonów, ale zobacz na githuba do domyślnego stylu i podmień to co potrzebujesz: https://github.com/symfony/symfony/blob/mas...ayout.html.twig A pozostałe masz tutaj: https://github.com/symfony/symfony/tree/mas...rces/views/Form Teraz jestem pewny że, ta linijka odpowiada za wyświetlenie opisu do radio:
Chcę teraz żeby mi nie wyświetlało tagów html, niestety dodanie raw nie działa. Czy jest jakiś inny sposób żeby to zrobić? Udało mi się do tego dojść, trzeba wyswietlić etykietę do radio ręcznie, coś takiego:
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 428 Pomógł: 77 Dołączył: 10.07.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Tutaj dla przykładu, masz templatkę pod Bootstrap 3, możesz spokojnie się nią wzorować.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 19:18 |