отображение столбца CakePHP - PullRequest
3 голосов
/ 25 января 2011

Я только начал работать с CakePHP, поэтому я новичок в работе с этой платформой и взял унаследованную систему с довольно ужасной структурой базы данных.Я вошел и добавил первичные ключи к таблицам, у которых их не было.Тем не менее, я не могу найти информацию о том, где сопоставить столбцы в модели, и мог бы использовать некоторые ссылки, чтобы я мог ориентироваться в этой области.Я начинаю с их пользовательской таблицы, которая была названа "система".Я создал модель с именем User:

class User extends AppModel {
    var $name = 'User'; 
    var $useTable = 'system';       
}

Я хочу сопоставить столбцы с именами свойств, которые в большей степени соответствуют соглашениям, без изменения существующей базы данных, поскольку в настоящее время они используют эту таблицу.Структура таблицы:

Table: system

Field Name     DataType     Nullable   Default
------------------------------------------------------------------
user_id        tinyint(4)   No         None AUTO_INCREMENT
s_rec_type     tinyint(4)   Yes        NULL
s_user_id      varchar(20)  Yes        NULL
s_init         char(2)      Yes        NULL 
s_password     varchar(12)  Yes        NULL
admin_access   tinyint(4)   No         0
fname          varchar(50)  No
lname          varchar(50)  No
email_address  varchar(50)  Yes        NULL
created        datetime     Yes        NULL
modified       datetime     Yes        NULL

// I added email_address, created, and modified.

Я хочу отобразить столбцы в модели следующим образом:

user_id       -> Id
s_rec_type    -> UserType
s_user_id     -> UserName
s_init        -> Initials
s_password    -> Password
admin_access  -> AdminAccess
fname         -> FirstName
lname         -> LastName
email_address -> EmailAddress
created       -> Created
modified      -> Modified

, чтобы я мог использовать такие методы, как $ this-> User->findAllById ($ id) или $ this-> User-> findByInitials ('sb') или используйте идентификатор $ this-> User-> id вместо чего-то вроде $ this-> User-> user_id и более согласованно с именамисоглашения с кодом, который легче понять.

Эта таблица будет также использоваться для определения того, к каким пунктам меню пользователи имеют доступ и к каким страницам пользователь может получить доступ.Я разберусь с этим позже.

Ответы [ 2 ]

3 голосов
/ 25 января 2011

Я бы взглянул на виртуальные поля . Инициализация атрибута вашей модели может выглядеть следующим образом:

var virtualFields = array (
    'UserType' => 's_rec_type',
    'UserName' => 's_user_id',
    'Initials' => 's_init',
    .....
    'Modified' => 'modified'
);
0 голосов
/ 25 января 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...