CakePHP - условия на связанной модели - PullRequest
1 голос
/ 19 января 2011

Проблема вкратце: я хочу установить условия для связанной модели.Как мне это сделать?

У меня проблема с ассоциациями в моем приложении CakePHP.

Ассоциации выглядят так:

Event has many EventSum belongs to Account has many AccountUser belongs to User
Event has many EventDebt ... (the rest is the same as above)
Event also belongs to User

Приложение представляет собой частную экономическую программу на PHP и использует платформу CakePHP.

Событие - это финансовое событие, покупка, транзакция между счетами и т. Д. Оно содержит информацию только о дате, названиии пользователь.

EventSum содержит информацию о учетной записи и о том, сколько средств нужно списать или зачислить (в одном столбце, только положительное или отрицательное).1021 * Account содержит информацию о названии учетной записи.

AccountUser содержит идентификатор Account и User .Это указывает на то, что


Итак, теперь я хочу получить События в зависимости от того, с какими учетными записями связан Пользователь .Как я могу это сделать?

Я хочу получить следующую информацию: Событие вместе с EventSum.События извлекаются из Аккаунтов, к которым у Пользователя есть доступ.

Спасибо за любую помощь, / Magnus

1 Ответ

1 голос
/ 10 февраля 2011

Похоже, вы хотите иметь возможность запросить ваш класс Event при следующих условиях:

'Account.user_id =' => $userId

Правильно ли мое предположение?

При выполнении запросов, которые требуют условий для связанных моделей, вы можете использовать либо поведение Containable (поставляется с CakePHP 1.3 ), либо поведение 'Linkable' (которое можно найти здесь ).

Что происходит, когда вы пытаетесь это сделать (обязательно сначала прикрепите поведение Containable к вашим моделям):

$condition = array('Account.user_id =' => $userId);
$contain = array('EventSum' => array('Account'), 'EventDebt' => array('Account'));
$result = $this->Event->find('all', compact('condition', 'contain'));

Обратите внимание, что вы можете столкнуться с проблемами при «содержании» обоих EventSum и EventDebt, если обе их ассоциации с Account используют одно и то же псевдоним.

...