Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl


crafter
Napisane: 5.10.2015, 13:22:42





Grupa: Zarejestrowani
Postów: 72
Dołączył: 14.02.2007

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

jak napiszesz większą hierarchę klas wtedy zrozumiesz:D
akurat w tym przykładzie nie ma to sensu ale już w tym poniższym jak najbardziej
  1. class Stefan {
  2.  
  3. protected $ubranie;
  4. protected $buty;
  5. protected $czapka;
  6.  
  7. public function setUbranie($jakie) {
  8. $this->ubranie = $jakie;
  9. }
  10.  
  11. public function getUbranie() {
  12. return $this->ubranie;
  13. }
  14.  
  15. }

a dlaczego bo nie zawsze chcemy aby zmienne składowe klasy były dostępne zewnątrz, chodzi tu głównie o kontrolę aplikacji.
  Forum: PHP · Podgląd postu: #1172858 · Odpowiedzi: 14 · Wyświetleń: 1 381

crafter
Napisane: 15.09.2011, 21:55:23





Grupa: Zarejestrowani
Postów: 72
Dołączył: 14.02.2007

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

Witaj
Jeśli definiujesz relację jeden do wielu czyli autor może mieć jeden lub więcej artykułów to musisz w Autor odpowiednio to zdefiniować:
Kod
Autor:
  relations:
     Artykul:
        local: idAutor
        foreign: autorId
        type: many
a w Artykul
Artykul:
  relation:
    Autor:
       local: autorId
       foreign: idAutor
       type: one


Jeśli używasz doctrine wtedy wygenerujesz model który powiąże Autora z arykułami czyli jesli pobierzesz obiekt autora i zrobisz na nim metodę getArticle() wtedy pobierzesz wszystkie artykuly należące do tego autora. W skrócie wyglądałoby to tak:
  1. $autor = AutorTable::getInstance()->find(1); //zwraca obiekt autora o id=1
  2. $article = $autor->getArticle(); //zwraca kolekcje arykulow


Jeśli chcesz pobrać artykuły wraz z ich autorami w modelu robisz np tak:
Model - AutorTable:

  1. //metoda pobiera autora o jakims id
  2. public static function getAutor($id) {
  3. $q = Doctrine_Query::create()
  4. ->select('a.*')
  5. ->from('Autor a')
  6. ->where('a.idAutor = ?',$id);
  7. return $q->execute();
  8.  
  9. }


teraz w module jakiejs akcji robisz:
  1. $autor = AutorTable::getAutor(1);
  2. $autor->loadRelated('Artykul');

w ten sposób pobierzesz sobie obiekt autora a w nim obiekty jako kolekcje artykulow przypisanych dla tego autora.

Albo ostatni sposób to poprostu zapytanie w modelu z innerJoin i leftJoin

Pisałem z palca więc moga być literóki w kodzie albo błędy.
pozdraiwam




  Forum: Frameworki · Podgląd postu: #899188 · Odpowiedzi: 5 · Wyświetleń: 621


New Posts  Nowe odpowiedzi
No New Posts  Brak nowych odpowiedzi
Hot topic  Popularny temat (Nowe)
No new  Popularny temat (Brak nowych)
Poll  Sonda (Nowe)
No new votes  Sonda (Brak nowych)
Closed  Zamknięty temat
Moved  Przeniesiony temat
 

RSS Wersja Lo-Fi Aktualny czas: 27.04.2024 - 21:32