• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Odbieranie identyfikatora GET'em z formularza i uzycie w sapytaniu SELECT | SYMFONY 3

Object Storage Arubacloud
0 głosów
146 wizyt
pytanie zadane 12 kwietnia 2017 w PHP przez wanderer Gaduła (3,710 p.)

Hej, Tu mam nieco bardziej zlozony problem, mianowicie: 

https://thepasteb.in/p/mwhKc917NKPpoUm

linie 24- 35  to formularz gdzie wybieram z dropdown list okreslone dane ktore mają swoje identyfikatory ID, nastepnie w linijce 57 uzywam $idPrzedmiot, które odbieram w liniach 44,45   (gdzie przedmiot z linii 45 biore z formularza z lini 27).

niestety to nie dziala, dump wykonany po puszczeniu formularza to:   czyli widac ze pracownik i przedmiot mają 0, jak dostać się do tych identyfikatorow zeby uzyc w zapytaniu? 

PrzydzialController.php on line 234:
array:8 [▼
  "pracownik" => "0"
  "przedmiot" => "0"
  "plachta" => "1"
  "opis" => "1ewsadsadsa"
  "wykladLiczbaGodz" => "1"
  "laboratoriumLiczbaGodz" => "2"
  "cwiczeniaLiczbaGodzin" => "2"
  "_token" => "S7qdw8eX-nJ3t2hGgc3jzbJyFqndtaUKwuhvSbxC3nE"
]

da ktos dobra rade :) ?

1
komentarz 13 kwietnia 2017 przez xandros Nałogowiec (29,450 p.)
edycja 13 kwietnia 2017 przez xandros
wyjasni mi ktoś kiedyś, co to jest ta "plachta"? Ciągle ją widze w apkach z symfony...

also, czy ta metoda nie jest zbyt dluga?

wez to podziel, bo wykraczasz poza granice 30 lini...

Also masz tam trochę powtóżeń. ogarnij je.
komentarz 13 kwietnia 2017 przez wanderer Gaduła (3,710 p.)
:D :D

1 odpowiedź

+1 głos
odpowiedź 13 kwietnia 2017 przez Ehlert Ekspert (212,670 p.)

http://symfony.com/doc/current/best_practices/index.html

Polecam Ci ten artykuł. Dowiesz się wiele mądrych rzeczy wink.

Problem Twój wynika też poniekąd z tego, że masz straszny bałagan w kodzie. 

$form = $this->createFormBuilder()
            ->setMethod('GET')
            ->add('pracownik', ChoiceType::class,ar//........

To można skrócić. Zrób klasę reprezentującą ten formularz i tworzenie go załatwisz jedną linijką. 

$em = $this->getDoctrine()->getManager();
            $query = $em->createQuery(
                "SELECT prz.liczGodzLabJedn,
                        prz.liczGodzCwJedn,
                        prz.liczGodzWykJedn,//.......

Po to encje Doctrine mają klasy repozytoriów, żeby nie czytać takich wierszyków w kontrolerze. 

Co do Twojego problemu:
http://symfony.com/doc/current/bundles/SensioFrameworkExtraBundle/annotations/converters.html
Dzięki temu kontroler będzie Ci konwertować parametry z get'a na encje które Cię interesują. Potem wykorzystując je możesz ewentualnie się odwołać do repo encji (lub innego) po więcej danych z bazy.

komentarz 13 kwietnia 2017 przez wanderer Gaduła (3,710 p.)

Do tej pory ten formularz mialem w osobnej klasie i działał on poprawnie (w swojej podstawowej wersji)  czyli wyświetlanie wszystkich możliwych danych w dropdown listach i dokonywanie przydziałów. Natomiast musialem naniesc na niego dodatkową obowiązkową funkcjonalność - czyli wyświetlanie danych w dropdown listach na podstawie identyfikatora ze zmiennej sesyjnej (ustawionej w innej czesci aplikacji), nie umialem tego zrobic w osobnej klasie PrzydzialType.php zatem wkleilem go do kontrolera, no i istotnie to zadzialalo (czyli wyswietlaly sie tylko przedmioty i pracownicy majacy w sobie identyfikator FK podany w sesji). JEDNAK, tylko wyświetlanie, bo przestało dzialać dokonywanie przydzialów. Z tego powodu ze zabrakło sporo wiedzy zrobił się bałagan i dlatego pytam, a niestety nie jestem w tym biegły.

komentarz 14 kwietnia 2017 przez wanderer Gaduła (3,710 p.)
edycja 14 kwietnia 2017 przez wanderer

EDIT:
raczej zrezygnuje z tego bałaganu i wróce do poprzedniej wersji, tylko proszę napisz mi jak w ponizszym kodzie odebrac zmienna sesyjną i zastosować ją w tworzeniu pól formularza, aby byly dropdown listy, z pracownikami, przedmiotami i plachtami mającymi jako klucz obcy wlasnie $idPlachta (czyli ten identyfikator co przyszedl w zmiennej sesyjnej) ? 

Q:
1. jak w tej klasie odebrac zmienna sesyjna i ją zastosować
2. jak zrobic dropdownlist z zastosowaniem tej zmiennej sesyjnej?
kod:
https://pastebin.com/epTxhk55

Podobne pytania

0 głosów
0 odpowiedzi 191 wizyt
pytanie zadane 11 sierpnia 2017 w PHP przez Szymon Ciompała Mądrala (6,280 p.)
0 głosów
1 odpowiedź 149 wizyt
pytanie zadane 29 sierpnia 2018 w PHP przez Szymon hciećwiedzieć Początkujący (330 p.)
0 głosów
0 odpowiedzi 203 wizyt
pytanie zadane 14 lutego 2018 w PHP przez Yashe Dyskutant (7,720 p.)

92,551 zapytań

141,393 odpowiedzi

319,522 komentarzy

61,936 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...