Если вы не хотите записывать DQL в контроллер (что хорошо), вы можете поместить в модель отдельные функции, которые будут работать только с функциональностью, предоставляемой расширенными классами.
ДляНапример, если у вас есть класс с именем User
, и вам нужно его сохранить, вы можете просто сделать
class User extends BaseUser //or whatever you want
{
public function saveNewUser($data) {
//setting the userdata e.g. $this->username
try {
$this->save();
....
} catch (Doctrine_Connection_Mysql_Exception $e) {
...
}
}
}
Таким образом, у вас есть все функции внутри модели так, как вы этого хотели.