CodeIgniter + Doctrine: CRUD в контроллере? - PullRequest
4 голосов
/ 17 октября 2010

Я новичок в MVC, CodeIgniter и Doctrine, так что, возможно, мой вопрос не столь актуален.Извините, если это так.

Я читал учебники CodeIgniter + Doctrine на PHPandStuff.com .Мне действительно нравится то, что я видел в Doctrine, и хочу использовать его для своего проекта.Тем не менее, поскольку все связанные с базой данных операции должны храниться в модели, а не в контроллере, должны ли операции CRUD, использующие Doctrine, также быть заблокированы в модели Doctrine?Если так, то как?

Заранее спасибо

1 Ответ

4 голосов
/ 18 октября 2010

Если вы не хотите записывать 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) {
           ...
        }
    }
}

Таким образом, у вас есть все функции внутри модели так, как вы этого хотели.

...