• 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

VPS Starter Arubacloud
0 głosów
169 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 (214,270 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 219 wizyt
pytanie zadane 11 sierpnia 2017 w PHP przez Szymon Ciompała Mądrala (6,280 p.)
0 głosów
1 odpowiedź 179 wizyt
pytanie zadane 29 sierpnia 2018 w PHP przez Szymon hciećwiedzieć Początkujący (330 p.)
0 głosów
0 odpowiedzi 232 wizyt
pytanie zadane 14 lutego 2018 w PHP przez Yashe Dyskutant (7,720 p.)

93,078 zapytań

142,041 odpowiedzi

321,445 komentarzy

62,423 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

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...