Влад правильно понял, я просто сделал несколько твиков и хотел опубликовать это для других.
Вот файл actions.class.php
$this->departments = Doctrine_Query::create()
->select('d.id')
->from('Department d')
->leftJoin('d.Users u')
->groupBy('d.id')
->having('COUNT(u.id) > 0')
->orderBy('d.name ASC')
->execute();
Я также отредактировал schema.yml
Department:
actAs: { Timestampable: ~ }
columns:
id: { type: integer(4), primary: true, autoincrement: true }
name: { type: string(255), notnull: true, unique: true }
relations:
User: {class: User, local: name, foreign: department_id, foreignAlias: Departments}
Type:
actAs: { Timestampable: ~ }
columns:
id: { type: integer(4), primary: true, autoincrement: true }
name: { type: string(255), notnull: true, unique: true }
user_id: { type: integer(4) }
User:
actAs: { Timestampable: ~ }
columns:
id: { type: integer(4), primary: true, autoincrement: true }
firstname: { type: string(255), notnull: true }
lastname: { type: string(255), notnull: true }
email: { type: string(255), notnull: true, unique: true }
department_id: { type: integer(4), notnull: true }
type_id: { type: integer(4), notnull: true }
url: { type: string(255), notnull:true }
description: { type: string(4000) }
relations:
Department: { class: Department, local: department_id, foreign: id, foreignAlias: Users}
Type: { class: Type, local: type_id, foreign: id, foreignAlias: Users }
И это прекрасно сработало. Спасибо за дальнейшее объяснение псевдонима букв. Это все еще немного туманно, так как кажется, что эти буквы просто составлены. Я выбрал d для отдела и u для пользователей, и я не уверен, что это очень важно. Спасибо @Vlad за помощь!