CodeIgniter + Doctrine:控制器中的 CRUD?

Posted

技术标签:

【中文标题】CodeIgniter + Doctrine:控制器中的 CRUD?【英文标题】:CodeIgniter + Doctrine: CRUD in Controller? 【发布时间】:2011-04-26 12:14:57 【问题描述】:

我是 MVC、CodeIgniter 和 Doctrine 的新手,所以我的问题可能与此无关。如果是这样,请原谅我。

我一直在阅读 phpandStuff.com 上的 CodeIgniter + Doctrine 教程。我真的很喜欢我所看到的 Doctrine 并希望将它用于我的项目。但是,既然所有与数据库相关的操作都应该保存在 Model 而不是 Controller 中,那么使用 Doctrine 的 CRUD 操作是否也应该放在 Doctrine Model 中呢?如果是,那怎么办?

提前致谢

【问题讨论】:

【参考方案1】:

如果您不想将 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) 
           ...
        
    

所以你在模型中拥有你想要的所有功能。

【讨论】:

以上是关于CodeIgniter + Doctrine:控制器中的 CRUD?的主要内容,如果未能解决你的问题,请参考以下文章

在 Doctrine 2 / CodeIgniter 2 中找不到实体模型

如何在 CodeIgniter 3 中安装 Doctrine

CodeIgniter Doctrine2基本使用(转)

CodeIgniter2的Doctrine2 CLI

在 Codeigniter 中捕获 Doctrine 异常的最佳方法

Codeigniter2,Doctrine2,作曲家等。一个巨大的混乱