Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Symfony] Relacje, drzewo checkboxów (symfony 3)
newbie007
post 27.02.2018, 19:03:17
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 27.02.2018

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
rad11
post 27.02.2018, 19:59:20
Post #2





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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)
Go to the top of the page
+Quote Post
newbie007
post 27.02.2018, 21:13:06
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 27.02.2018

Ostrzeżenie: (0%)
-----


@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?

Ten post edytował newbie007 27.02.2018, 21:15:36
Go to the top of the page
+Quote Post
phpion
post 28.02.2018, 07:14:29
Post #4





Grupa: Moderatorzy
Postów: 6 070
Pomógł: 860
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Powinieneś zapisywać tylko ostatni poziom czyli id_powiatu. Po nim dojdziesz do województwa, a po nim natomiast do kraju.
Go to the top of the page
+Quote Post
newbie007
post 28.02.2018, 08:12:09
Post #5





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 27.02.2018

Ostrzeżenie: (0%)
-----


@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...
Go to the top of the page
+Quote Post
phpion
post 28.02.2018, 17:29:31
Post #6





Grupa: Moderatorzy
Postów: 6 070
Pomógł: 860
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




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.
Go to the top of the page
+Quote Post
newbie007
post 7.03.2018, 06:39:14
Post #7





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 27.02.2018

Ostrzeżenie: (0%)
-----


@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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 29.03.2024 - 15:57