Модель CakePHP относится к любой другой модели - PullRequest
0 голосов
/ 21 июля 2011

Я не уверен, каков правильный заголовок.Вот моя проблема:

Существует несколько моделей, таких как:
Компания
Персона (не то же самое, что и пользователи)
Пользователь
и т. Д.

К некоторым из них должен быть прикреплен один или несколько файлов.

Итак, я создал модель UploadedFile .Как связать это с любой из вышеперечисленных моделей?Иногда UploadedFile принадлежит Company .Иногда UploadedFile принадлежит Person

Если UploadedFile принадлежит Company , тогда он не принадлежитдругим, например, Person .

All UploadedFile принадлежит User (потому что они загружают их, и мне нужно отслеживать, кто его загрузил)

Работает ли здесь HABTM?Любые другие лучшие способы?

Большое спасибо за помощь.

С уважением,
Тони.

1 Ответ

1 голос
/ 21 июля 2011

Создайте файл UploadedFile для всех трех пользователей (пользователя, компании и человека):

var $belongsTo = array(
    'User' => array('className' => 'User','foreignKey' => 'user_id'),
    'Company' => array('className' => 'Company','foreignKey' => 'company_id'),
    'Person' => array('className' => 'Person','foreignKey' => 'person_id'));

Поскольку он всегда принадлежит пользователю, user_id всегда будет иметь значение.

Затем вы проверите, установлен ли company_id или person_id, и определите, к какому из них относится файл. У меня есть приложение, которое работает так же, как это. Это немного кропотливо, но я не мог найти другое решение

Еще одна хорошая идея - попытаться объединить Персона и Компанию в одной таблице и просто установить флажок для различия между ними.

...