Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 10 Dołączył: 16.11.2008 Ostrzeżenie: (0%)
|
Korzystam z pluginu sfDoctrineGuardPlugin. Dodatkowo mam w bazie tabelę przechowującą teksty literackie użytkowników, powiązaną z sfGuardUser:
Kod writing: actAs: Taggable: ~ Timestampable: ~ Sluggable: fields: [title] name: title_slug canUpdate: true unique: false columns: user_id: type: integer title: type: string(255) title_slug: type: string(255) content: type: clob relations: User: class: sfGuardUser type: one foreignType: many foreignAlias: Writings local: user_id foreign: id onDelete: CASCADE options: collate: utf8_unicode_ci charset: utf8 indexes: writings_index: fields: [created_at, updated_at, title_slug] Jeden użytkownik może być autorem wielu tekstów, a jeden tekst posiada jednego użytkownika (autora). Próbuję "dobrać się" do wszystkich tekstów użytkownika nie za pomocą zwykłego getWriters() w sfGuardUser, ponieważ zależy mi na istnieniu dodatkowej kolumny - nazwy użytkownika. W tym celu dopisałem metodę w sfGuardPlugin:
Niestety Doctrine zwraca mi zawsze tylko jeden rekord , pomimo że czysty SQL w konsoli PhpMyAdmin zwraca ich tyle, ile jest w bazie. Co ciekawe, jeśli wymuszę zachowanie na Doctrine::HYDRATE_NONE, to metoda użytkownika zwraca tyle rekordów co czysty SQL. Czy ktoś wie dlaczego Doctrine zwraca tylko jeden rekord? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 8.09.2009 Ostrzeżenie: (0%)
|
Doctrine najprawdopodobniej zwraca prawidłowy wynik- jednak w postaci obiektów. Obiekt User zawiera wiele obiektów pokrewnych tabeli Writing.
Można to samemu zauważyć stosując hydratację do tabeli (Doctrine_Core::HYDRATE_ARRAY) i wyświetlając wynik tej operacji. Mam jeszcze jedno pytanie dotyczące wklejonego kodu: za co odpowiada zachowanie "taggable"? Szukałem w dokumentacji doctrine i nie znalazłem tego zachowania wśród standardowych. |
|
|
|
m44 [Symfony][Doctrine] Problem z prostym złączeniem. 5.10.2010, 18:42:29
m44 Miałeś rację, wszystko jest w obiekcie. Co ciekawe... 5.10.2010, 19:51:37
olekbiker Jeśli mogę jeszcze coś zasugerować. W mojej opinii... 6.10.2010, 09:37:30 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 16:17 |