Гибридная модель LDAP / MySQL CakePHP - PullRequest
1 голос
/ 02 февраля 2012

У меня есть модель (Person) в CakePHP, которая представляет пользователя из таблицы MySQL.Одним из полей в модели является идентификатор пользователя в Active Directory.Я также реализовал модель LdapUser, которая правильно обрабатывает запросы для объектов AD и использует параметр useTable = false.

Я хотел бы добавить поле в модель Person, указывающее, отключен ли пользователь в данный моментобъявление.Я знаю, как выполнять все операции с LDAP-запросами, но проблема в том, что я не могу понять, как добавить этот атрибут в модель.Моей первой идеей было добавить статическое виртуальное поле, установленное при построении модели Person с использованием модели LdapUser и ClassRegistry :: init ('LdapUser').Однако это не работает, потому что виртуальные поля являются просто псевдонимами SQL, и поэтому CakePHP не будет принимать значение, которое я установил для виртуального поля буквально.Вместо этого он пытается сформировать его в запрос.

Есть ли способ установить значение статического поля в модели, даже если модель считывает данные из таблицы базы данных?

1 Ответ

0 голосов
/ 02 февраля 2012

Хорошей реализацией было бы поведение. Таким образом, вы разделяете всю логику LDAP, но все же можете получить к ней доступ через модель Person. Настройки, которые вы сделали сейчас, не кажутся логичными, есть один человек, то есть одна модель. Лучше подключите часть LDAP в задней части модели.

Ваш вопрос об инвалиде. Например, вы можете загрузить поведение с помощью метода beforeFind. Таким образом, вы можете решить, например, что пользователи никогда не будут загружены, или вы можете добавить флаг отключения к данным.

Как правило, метод в модели isDisabled () должен помочь вам ответить на ваши вопросы. В этом случае не требуется виртуальное поле.

...