Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony] Relacje, drzewo checkboxów (symfony 3)
Forum PHP.pl > Forum > PHP > Frameworki
newbie007
Witam.

W skrócie: chcę stworzyć drzewo checkboxów (zagnieżdżone checkboxy)
Opis: firma oznacza obszar działania (to są checkboxy: kraj, województwo, powiat). Chcę wyświetlić to w ten sposób:
+ Kraj 1
- województwo 1
* powiat 1
* powiat 2
* ....
- województwo 2
*....
+ Kraj 2
- województwo 1 (dla danego kraju)

Kod: https://gist.github.com/anonymous/666b758bf...6ae02c94931c4eb

I teraz najważniejsze: tworzy się tabela many2many dla companies_countries. Dane są przechowywane. Ale jak przechować dane w taki sposób, żeby było wiadomo, że firma X obsługuje powiat ZZ oraz XX, województwo YY oraz CC oraz kraje np. Polska i Austria? Dodam, że później będę wyszukiwał firmy np. po obsługiwanych powiatach itd.

Czyli dwa, trzy problemy:
1. Jak powinny wyglądać poprawne relacje? Jak powinna wyglądać poprawna struktura bazy danych?
2. Jak wyświetlić drzewo checkboxów? Tu oczywiście pewnie zabawa w twigu.

Wiem, że kod jest niekompletny i kiepski ale serio już nie wiem jak to rozwiązać wink.gif
rad11
Tutaj masz cos podobnego

http://shout.setfive.com/2014/10/24/symfon...in-a-hierarchy/

Struktura powinna wygladac tak:

Tabela kraj
Kolumny id name

Tabela wojewodztwo
Kolumny id name kraj_id(relacja do kraju)

Tabela powiat
Kolumny id name wojewodztwo_id(relacja do wojewodztwa)
newbie007
@rad11 ale tak jest. Sprawa o której mówię to w jaki sposób zapisać/przechowywać w bazie dane dla firmy czyli to co wybrał użytkownik. Zobacz, że nie uwzględniłeś tego jak zrobić relacje firma -> obsługiwany obszar (kraj, województwo, powiat) tak aby móc zapisać w bazie informacje, które z tych obszarów obsługuje firma.

A dwa, że w podanym przykładzie jest ChoiceType, a to powinno być EntityType bo przecież przekazujemy tam encje, prawda?
phpion
Powinieneś zapisywać tylko ostatni poziom czyli id_powiatu. Po nim dojdziesz do województwa, a po nim natomiast do kraju.
newbie007
@phpion czyli powinna istniec relacja many2many companies -> counties (powiat; tabela np. companies_counties) gdzie zapisywane jest ID firmy i powiatu.
1. Jak to rozwiazac z zaznaczonymi checkboxami? Chce wyswietlac formularz ktory umozliwialby zapisanie, to za pomoca JSa po prostu zrobic tak ze jesli zaznaczyl powiat to wyzej wojewodztwo i kraj rowniez sie zaznaczaja ale nie zapisuja w bazie skoro przechowujemy tylko dane powiatu?
2. Co jesli chce pozniej stworzyc wyszukiwarke i uzytkownik wybierze tylko wojewodztwo lub kraj, czyli chce poznac wszystkie firmy obslugujace dane wojewodztwo czy kraj? Nie poda wiec powiatu...
phpion
1. Zaznaczasz tylko w celu poglądowym, w bazie zapisujesz tylko powiat. Jak to zrobić w JS - zależy jaką będziesz miał strukturę HTMLa. W jQuery powinieneś to ogarnąć bez większego problemu.
2. Ktoś wybiera województwo, masz w bazie powiązania wojewodztwo-powiat wiec jesteś w stanie wyciągnąć powiaty. Analogicznie dla kraju. Wiesz jakie ma województwa i jakie są w nich powiaty. Teraz pytanie czy wyszukiwarkę oprzesz na złączeniach tabel i warunkach czy od razu na where firmy_powiaty.id_powiatu in (lista, powiatów, według, kryteriów, wyszukiwania) ale na to pytanie musisz odpwiedziec sobie sam jak będzie Ci wygodniej i co będzie wydajniejsze.
newbie007
@phpion
1. jak pobrać kraje -> województwa -> powiaty tak żeby to były checkboxy i zagnieździć jedno w drugim?

mogę napisać na PW? chętnie zapłacę za te rozwiązanie mimo, że to robie do szuflady ale nie mam pojęcia jak to rozwiązać wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.