【问题标题】:symfony2 and Doctrine2 - upload as a servicesymfony2 和 Doctrine2 - 作为服务上传
【发布时间】:2013-05-20 11:41:50
【问题描述】:

我正在学习 Symfony2,需要一些建议。我有两个实体,第一个实体“问题”与第二个实体“附件”有 OneToMany 关系。发布问题表单时,我成功上传了所有子附件,一切正常 :) 但现在我想将上传解决方案变成服务,这就是我感到困惑的地方。上传在我的附件模型中处理,我的控制器简单地如下所示:

    if ($editForm->isValid()) {

        $em->persist($entity);
        $em->flush();            

    ....

据我了解,可以使用“get”方法从控制器访问服务,但是因为我没有在控制器中处理我的附件,也从不从控制器实例化“附件”模型我如何将其传递给上传服务?在 Attachment 实体构造中实例化它似乎会破坏练习的对象,不是吗?

如果我在说废话,请原谅我。白痴友好的指导将不胜感激。

编辑:: 根据反馈,上传是否应该被视为在控制器中处理的服务,或者它们是否可以是与模型相关的行为?往哪个方向跳。

【问题讨论】:

  • 这可能不是你想要的,但我喜欢使用Uploadable 原则行为和/或Lifecycle Callbacks 来处理我的上传
  • 太棒了!谢谢,正是我正在寻找的解决方案类型。当然,这是一个教义问题,而不是一个真正的 symfony 问题。我会看看他们能提供什么。

标签: symfony doctrine-orm


【解决方案1】:

我在 ZF2 中做类似的事情 - 但我仍然使用我的控制器来处理和接收上传,然后使用服务提取上传,将它们注册到数据库等。

我获取临时上传到的文件的名称并将其传递给服务(即 /tmp/up2029398393)。然后将其移动到应有的位置,创建实体并为该对象执行持久化和刷新

【讨论】:

  • 您认为在控制器中处理它们是否正确?将功能黑盒化到实体中是我根本错误的吗?
猜你喜欢
  • 2011-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-18
  • 1970-01-01
  • 2012-11-02
  • 2014-10-06
  • 1970-01-01
相关资源
最近更新 更多