![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 176 Pomógł: 0 Dołączył: 8.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Na początku zaznaczę że mój problem jest dość nietypowy i nie wiem czy łatwo mi go będzie wyjaśnić. Otóż potrzebuje stworzyć formularz który będzie dynamicznie przyporządkowywał się do modelu danych. Tzn. mam akcję która posiada powiedzmy nazwę modelu oraz parę innych rzeczy. Tworzy ona obiekt formularza (po Baseform) przekazując do niego te parametry. W formularzu jest robiony szereg warunków i pozwoleń, które pola mają się wyświetlić i w jaki sposób.
Zaznaczam że pola (nazwy kolumn są pobierane z bazy), ponieważ właśnie tam znajduje się cała mapa schematu aplikacji. Problem jest w tym, że nie wiem jak i nie wiem czy się w ogóle da zrobić takie coś, aby po zadeklarowaniu pól połączyć się z konkretnym modelem i uzyskać dostęp do zapisu danych w tym modelu.... Wiem że można takie coś uzyskać wywołując w zależności od modelu różne formularze które właśnie po nich dziedziczą....ale chyba bezsensem byłoby za każdym razem (w zależności od projektu) aktualizować powiedzmy 15-20 formularzy do każdego modelu z osobna. Jeżeli ktoś mnie zrozumiał proszę o odpowiedź. Ten post edytował blackroger 11.09.2010, 15:42:39 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Pewnie da się zrobić. Tylko jak mamy Ci powiedzieć jak to zrobić skoro nie wiemy jak wygląda aplikacja? Przecież dostęp do modelu i jego zapisu chyba nie jest trudny.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 176 Pomógł: 0 Dołączył: 8.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Udało mi się znaleźć rozwiązanie, więc się nim podzielę. Należało stworzyć formularz dziedziczący po BaseFormDoctrine. Następnie dodać metodę getModelName i w środku odwołać się do zmiennej np. $this->model_name i ją zwrócić. Jest to metoda wykorzystywana w klasie abstrakcyjnej sfFormDoctrine znajdującej się nad BaseFormDoctrine. To właśnie tam dodałem zmienna typu protected, którą ustawiam na samym początku konstruktora. Jej wartość ustawiam przepisując ze standardowego wejścia tablicy np. $options[model_name]. W ten sposób można dynamicznie tworzyć formularze do różnych modeli bez konieczności deklarowania ich wcześniej. Nie wiem czy ktoś zrozumie o co mi chodziło, ale podzieliłem się faktem.
Ten post edytował blackroger 12.09.2010, 01:10:48 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 18:45 |