Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony] Model, Problem z modelem
Nekro
post
Post #1





Grupa: Zarejestrowani
Postów: 36
Pomógł: 2
Dołączył: 3.01.2007
Skąd: Żory

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


Witam,

Wlasne jestem na etapie tworzenia wieksze projektu i mam nastepujacy problem.
Mam 3 klasy modelu:
- User (tabela: tusr)
- Company (tcompany)
- ContactInfo (tcontactinfo) : zapisuje tam maile, www, telefony rozrozniajac je po typie

Nie wiem jak sie uporac sie z taka sytuacja.
Uzytkownicy i firmy posiadaja informacje kontaktowe czyli jakby nie patrzac mamy sytuacje:
tuser.id 1------n tcontactinfo.id
tcompany.id 1-------- n tcontactinfo.id

A zeby tego bylo malo to jest tez taka sytuacja ze firmy moga miec przypisanych uzytkownikow
tcompany 1 ------- n User

I teraz jak skonstruowac model z kluczami obcymi itp. Wiadomo ze mozna by to zrobic bez kluczy obcych ale troche lyso (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Z gory dzieki za pomoc

Dodam ze probowalem nawet zapisywac uzytkwonikow i firmy w jednej tablicy ale potem mialem problem z sytuacja, w ktorej tusr odwolywal sie do siebe samej bo firma moze miec uzytkownikow :/

Ten post edytował Nekro 7.01.2008, 22:05:16
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
jupeter
post
Post #2





Grupa: Zarejestrowani
Postów: 50
Pomógł: 1
Dołączył: 14.07.2004
Skąd: Warszawa

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


Heh, Nekro trochę mało zgrabnie to napisałeś, ale chyba wiem co miałeś na myśli.

Cytat
tcompany 1 ------- n User

Jak widać, jest to łączenie 1 do wielu. Czyli załatwiamy to zgrabnie w schema.yml. (jak nie wiesz, to proponuję poczytaj w dokumentacji - jest to podstawa)

Kod
</span><span class="postcolor">tuser.id 1------n tcontactinfo.id
tcompany.id 1-------- n tcontactinfo.id</span><span class="postcolor">

Rozwiązań wiele. Osobiście proponuję utworzyć w wygenerowanej klasach Tuser i Tcompany metodę getContactInfo().
A tam cóż innego jak coś w stylu (np. dla Tuser):
Kod
public function getContactInfo()
{
     $c = new Criteria();
     $c->add(Tuser::TYP, 'user');
     $c->add(Tuser::USER_OR_COMPANY_ID, $this->getId());

     return TContactInfoPeer::doSelect($c);
}


oczywiście nazwy wziąłem z kosmosu.

Odnośnie generatora Panowie, proponuję zabierać się za niego, tylko gdy będzie dobrze "obudowany" model w odpowiednie metody.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 3.10.2025 - 18:39