【问题标题】:Symfony2 Database separationSymfony2 数据库分离
【发布时间】:2015-03-29 14:16:59
【问题描述】:

我试图设置一个 UserModel 类,但对数据库和模型的分离非常不满意。

例如我想检查用户名是否已经存在或生成一个新用户。但是所有这些操作都需要数据库连接,而这仅在控制器中可用。当然我总是可以注入数据库对象,但感觉不对。处理这些事情的正确方法是什么?

【问题讨论】:

  • “我想检查用户名是否已经存在或生成一个新用户。但是所有这些操作都需要一个数据库连接,它只在控制器中可用”你想在哪里执行这个操作?不要在模型本身中这么说。
  • 不,在一个单独的类中应该处理我的“用户”逻辑。
  • 然后你应该为你的类配置一个服务,传递学说 EM 或存储库,从控制器中的容器中检索它(而不是手动实例化)并调用应该封装所有逻辑的方法。阅读更多关于服务容器symfony.com/doc/current/book/service_container.html

标签: php symfony model controller


【解决方案1】:

你可以使用 UniqueEntity 验证器,文档在这里

http://symfony.com/doc/current/reference/constraints/UniqueEntity.html

关于 db 连接,您可以在需要的地方轻松地将特定存储库或实体管理器本身注入您的服务中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-17
    • 2012-08-03
    • 2020-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多