[Gii] Php Variable Naming Convention

Witajcie.

Próbuję utworzyć model dla tabeli, w której nie mogę zmienić nazwy kolumn ze względu na aplikację, która potrzebuje zachowania struktury tabeli w aktualnej formie.

Gii wyrzuca komunikat: Column names that does not follow PHP variable naming convention: urzadzenia.session-timers.

Rozumiem, że ma problem z "przetrawieniem" nazwy jednej z kolumn. Czy jest jakiś sposób aby:

  • przejść przez proces generowania modelu w GII

  • nie zmuszać się do ręcznego tworzenia modelu

Pozdrawiam.

Spróbuj utworzyć widok w bazie danych, który będzie 1:1 odwzorowywał dane z tabeli, ale miał już normalne nazwy kolumn.

dzieki za odpowiedź - z nie znanych mi przyczyn nie dostałem powiadomienia na e-mail i stąd ta zwłoka :)

także wpadłem na taki pomysł, jednak po wykonaniu tej czynności GII wścieka się o brak PK :confused:

Bez gmerania w Gii raczej ciężko. Generalnie poświęcisz więcej pracy:

  • albo na modyfikację Gii,

  • albo na stworzenie nowej tabeli ze zmienionymi nazwami problematycznych kolumn, a resztą taką samą jak w tej potrzebnej, a następnie użycie jej w Gii i zmianę nazwy z powrotem w gotowym modelu,

  • albo na ręczne dodanie modelu.

Z powyższych opcji wybrałbym ręczne dodanie. Chyba że masz takich tabel milion.

Zważywszy, że z YII zaczynam przygodę to chciałem poznać jakieś pro rozwiązanie. Aktualnie zmieniłem nazwy - bo chodzi tylko o 1 tabelę, jak na ten moment - kolumn problematycznych, utworzyłem model, a następnie usunąłem tabelę i wczytałem ponownie całą z dump’a sql’a.

Pro-rozwiązaniem jest napisanie tego modułu z palca - to wcale nie trwa tak długo, jak już wiesz jak to robić. :P Gii to tylko ułatwiacz, a nie kompleksowe i jedyne słuszne rozwiązanie do generowania modeli.

Mnie bardziej zastanawia jak ci taki model działa. Nie ma z nim żadnych problemów? Jak odwołujesz się do problematycznej kolumny?

rzecz w tym, że nie potrzebuję się do tych kolumn odwoływać przez www :) ale jak już ogarne podstawy-podstaw Yii to spróbuję Pro-rozwiązania ;)

Zapisywać też nie musisz? Czy w takim razie nie prościej było zamiast modelu skorzystać z DAO i opakować to w jakąś klasę?

http://www.yiiframework.com/doc/guide/1.1/pl/database.query-builder

Ogólnie to wygląda tak. Tabela ma ~50 kolumn, muszę odczytywać/zapisywać jakieś 10. A z linkiem się zapoznam :)

Jeśli musisz walidować i zapisywać dane, to model ma jednak więcej sensu. Ale generalnie najlepsze rozwiązania to te, które działają - jeśli obecnie wszystko jest OK, to ja bym nie kombinował za bardzo, chyba że chcesz się pobawić i potestować. Lepsze jest wrogiem dobrego ;)