Я использую таблицу доктрин, которая имеет несколько необязательных отношений (типов Doctrine_Relation_Association
и Doctrine_Relation_ForeignKey
) с другими таблицами.
Как я могу проверить, имеет ли запись из этой таблицы связи с записями из связанной таблицы.
Вот пример, поясняющий мой вопрос. Предположим, что у вас есть пользователь, и пользователь имеет отношение многие ко многим с группами пользователей, и пользователь может иметь одну роль пользователя
Как я могу проверить, является ли данный пользователь частью какой-либо группы или имеет какую-либо роль.
Решение начинается, я полагаю, с
$relations = Doctrine_Core::getTable('User')->getRelations();
$user = Doctrine_Core::getTable('User')->findOne(1);
foreach($relations as $relation) {
//here should go a test if the user has a related record for this relation
if ($relation instanceof Doctrine_Relation_Association) {
//here the related table probably has more then one foreign key (ex. user_id and group_id)
}
if ($relation instanceof Doctrine_Relation_ForeignKey) {
//here the related table probably has the primary key of this table (id) as a foreign key (user_id)
}
}
//true or false
echo $result
Я ищу общее решение, которое будет работать независимо от того, сколько существует отношений между пользовательскими и другими таблицами.
Спасибо!