Po prostu zaczynałem od Doctrine ORM for PHP (v1.1.5) i wpadłem na coś nieoczekiwanego.Wygenerowane modele Doctrine respektują wielkość liter, ale wygenerowane Yaml nie są
jestem generowania modeli z db (MySQL 4) za pomocą:
Doctrine::generateModelsFromDb($pathToModels);
Następnie generowania YAML z modeli przy użyciu:
Doctrine::generateYamlFromModels($pathToSchema . '/schema.yml', $pathToModels);
w generowanych modeli, nazwy kolumn (jak zdefiniowano w hasColumn()
) użyj tego samego przypadku dla pól, jak w db. Wszystko dobrze.
Jednak w wygenerowanym YAML nazwy kolumn są pisane małymi literami, niezależnie od przypadku w modelu.
Nie wydaje się, aby dostępne były jakiekolwiek opcje na metodzie generateYamlFromModels()
, które mogłem wykorzystać w celu poprawienia tego. Czy jest jakiś inny atrybut, który powinienem ustawić gdzieś, być może na poziomie połączenia lub na poziomie menedżera, itp.? Czy to może być błąd?
Wszelkie pomysły bardzo doceniane. Dzięki i okrzyki!
widziałem pytanie Doctrine ORM: Models not respecting case, ale brakowało tego bitu w jednej z odpowiedzi:
Czy to wszystko, co istnieje? Nie ma sposobu, aby uzyskać szacunek dla pokolenia Yaml, ale mogę ręcznie poprawić YAML za pomocą aliasingu? –Jezu, co takiego jest w publicznym publikuwaniu pytania, które sprawia, że odpowiedzi po prostu się pojawiają? Ta sama odpowiedź co powyżej (http://stackoverflow.com/questions/1501501/doctrine-orm-models-not-respecting-case/1620387#1620387) zauważa: "Co więcej, możesz zautomatyzować aliasing pól, opracowując niestandardowe zadanie dla Doctrine. ". Będę badał więcej, a może w razie potrzeby kontynuował. Przepraszam. [Proszę, nie wierzcie mi. Jestem na krawędzi przywilejów komentarza.] –
Wygląda na to, że Doctrine_Table :: setColumn() ustawia nazwę kolumny na małe litery, ponieważ nie widzi tam aliasu. –