![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 1.02.2009 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Witam serdecznie.
Podczas pisania pewnego projektu ze znajomymi pojawił się dość nietypowy problem. Mam plik plugins/coUserPlugin/config/doctrine/schema.yml (sfGuardPlugin z kilku względów odpada) o mniej więcej takiej zawartości: Kod User: tableName: user columns: id: type: integer(2) primary: true autoincrement: true login: type: string(25) notnull: true password: type: string(32) notnull: true mail: type: string(150) notnull: true realname: string(100) location: string(100) sex: type: enum values: [male, female] age: integer(1) is_checked: type: integer(1) notnull: true default: '0' indexes: user_login_unique: fields: [login] type: unique user_mail_unique: fields: [mail] type: unique ... Jak widać na pole login oraz email nałożony jest klucz unique. Po wywołaniu symfony doctrine:build-all-reload w katalogu lib pojawiają się odpowiednie klasy. Najistotniejsze do opisania problemu wydają mi się lib/model/doctrine/coUserPlugin/base/BaseUser.class.php a w niej:
oraz lib/form/doctrine/coUserPlugin/base/BaseUserForm.class.php z fragmentem:
Jeszcze raz napisze, że oba te pliki są generowane na podstawie schema.yml i w takiej postaci to u mnie działa. Problem natomiast pojawił się, gdy inni programiści zrobili checkouta projektu. Otóż w klasie bazowej formularza wywałanie metody setPostValidator... nie istnieje! Natomiast w modelu indeksy są wyznaczone. Nie oczekuję od Was od razu rozwiązania, jedynie wskazówki co mogło zawinić (cache sprawdzone, wyczyszczone dogłębnie (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) ). Wiem także, że wystarczy wywołać funkcję setPostValidator w podklasie formularza znajdującej się w folderze pluginu. Niemniej jednak jestem ciekaw dlaczego u mnie działa, a u partnerów z zespołu już nie (bez wyjątku). Pozdrawiam i z góry dziękuję za wszelkie wskazówki. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 04:23 |