2

那个问题有关。
我知道我必须创建一些服务来处理我的实体等等。那是因为我必须将我的逻辑从控制器“移动”到“经理”(即服务)中

现在我有一个包含一些逻辑的服务。在该服务中,我根据用户返回“关联对象”列表 - 假设这些对象是运动队。
假设我的列表的第一个元素(以某种方式从存储库生成)是“默认”团队,并说我有一个页面,我可以在所有会话中更改它。
注销或会话陈旧后,我想在“默认”情况下返回。

所以我的想法是:“因为我已经为这个实体编写了一个管理器,所以我将在这个类中编写一个私有属性,其中加载(从 db)这个属性并存储(暂时,使用 setter 方法)我的更改。”
这不会影响我的数据库,我可以在所有会话中保留我的信息。

但是一个想法出现在我的脑海中:会话对象怎么样?(是一项服务,如果我没有理解错的话)
我的解决方案是一个好的解决方案,还是将我的信息存储到会话对象中更好?
从我的角度来看,它是相同的,只是我可以使用app.session. 我错了吗?

此外,如果我没记错的话,我怎样才能从树枝访问我的对象属性,而无需每次都从控制器传递它们?(很像有一个全局变量,我想在我的应用程序页面的任何地方显示)。

编辑:

更多信息可以在这个聊天记录中找到。

4

1 回答 1

1

如果您想在会话期间存储变量(例如,登录直到注销或只要用户不关闭浏览器窗口),您必须将其存储在会话对象中。如果要在请求期间存储变量,可以将其存储在管理器服务中。

但是,您可以使用管理器服务来加载会话变量并使其对控制器可用。

就像将控制器与数据库/Doctrine 分离是一个好主意一样,将控制器与会话分离也是一个好主意。

更新:正如在查看 REST 时的评论中提到的,在服务中执行会话内容不是一个好主意。但是,您仍应将变量存储在会话中并使用控制器在服务中设置值。

于 2012-09-19T11:42:50.787 回答