Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Doctrine] Natywne widoki MySQL'a z Doctrine
Forum PHP.pl > Forum > PHP > Frameworki
aart3k
Cześć

Słowem wstępu:
Mam do zrobienia swego rodzaju podsumowanie aktywności na portalu, pomyślałem że może warto jeden taki wpis w "activity" przestawić właśnie w postaci modelu, klasy Activity, po której będą dziedziczyć np. NewPostActivity etc.

Zacząłem pisać te modele z palca, ale sobie pomyślałem - dlaczego nie wykorzystać widoków mysqlowych i jakoś zaprzągnąć do roboty Doctrine - niech hydruje i ładuje mi obiekty na podstawie relacji, po co pisać to jeszcze raz.

Konkrety:
Zrobiłem odpowiedni widok w mysql, ze wszystkimi polami dla takich acitivity, oraz polem "type".
Zrobiłem klasę Activity dziedziczącą po Doctrine_Record, dodałem podklasy dziedziczące po Activity (za pomocą column_aggregation, rozpoznawanie właśnie po kolumnie "type").
W Activity (na podstawie klas generowanych przez doctrine-cli) wklepałem setTableDefinition() oraz setUp().

Wszystko fajnie działa, Doctrine hydruje pola, pobiera mi rekordy relacyjne, dziedziczenie bez zarzutów.

Problemy czyli o co tak właściwie pytam w tym poście haha.gif:
1. Doctrine wymaga pola "id" - musiałem dopisać do widoku kolumnę id w której zawsze jest NULL
2. Przy generowaniu bazy Doctrine tworzy mi tabelkę "activity", której wcale nie chcę, nie da się może wybiórczo dla pewnych modeli wyłączyć generowania?
3. Co do powyższego - po każdym build-all-reload muszę usuwać tabelke activity i ręcznie uruchamiać sql'a tworzącego widok.

Chciałbym też poznać wasze podejście do takiego zagadnienia, budowania czegoś na wzór fejsbukowego walla. Oczywiście z Doctrinem.
LBO
Użyj migracji.

Wygeneruj zestaw i wykasuj te dotyczące widoków.

Same widoki możesz załadować ręcznie lub rozszerzając klasę migracji i uzupełnić o odpowiednie metody do tworzenia, kasowania i zmieniania nazwy widoków.
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.