Проще всего, если вы находитесь в экземпляре Doctrine_Table, который выглядит так:
$this->findOneByEmail($email);
Вам не нужно type
, если вы используете конкретное наследование, потому что оно будетбыть добавлены с помощью обратного вызова DQL (при условии, что они включены), но для полноты:
$this->findOneByEmailAndType($email, 'newsletter');
Они вернут Doctrine_Record, если он существует, или ноль, если его нет.
Вы можететакже используйте счетчик для вашего запроса:
$exists = $this->createQuery('t')
->where('t.email = ?', $email)
->andWhere('t.type = ?','newsletter') // your probably don't need this
->count();
Это вернет либо количество записей, соответствующих запросу.Это более эффективно, так как не увлажняет результаты.