检查 Symfony2 中是否有对象与集合中的另一个对象匹配;通知

Check if there is a Object matching another one from a Collection in Symfony2; Notifications

我想在我的项目中获得一些帮助。

我有一个游戏(比赛)列表,要求每个参与的用户采取一些行动(批准分数、接受邀请等)

我想做的是创建一个单独的实体来保存通知,通知用户他们应该做什么。例如

"You were invited to match X - go to the match to accept the invite"

虽然我知道该怎么做,但我遇到了一个不同的问题。

我想 "highlight" 列出需要用户操作的匹配项。最好的方法是什么?鉴于比赛是一个单独的实体,通知也是如此。

在一些假设下工作,很遗憾我无法澄清(总有一天,我会成为真正的贡献者!):

  • User 实体与 1:M 关系:NotificationGames
  • Game 实体 'Invite' 触发了一个事件,该事件被订阅并为受邀的 User
  • 添加了一个 Notification

基于此,我建议以下之一:

  1. 如果所有通知都是由于实体的操作而生成的,请使用某种 NotificationTriggerInterfacegetId 方法。将 Game id 与该 id 进行比较。
    • 如果您想引用任何实体的唯一属性,可能不是特别可靠。 (阿拉:notification->getTrigger()->getMyEntityUniqueProperty()
  2. 如果没有,您可以考虑为 Notification 使用 Interface & subclass 方法:
    • Notificationclass定义为接口,concrete/defaultclass。
    • 在 Twig 模板中循环时,将 'type' 属性 添加到界面以确保完整性,而不是多次 instanceof 检查。
    • 有一个扩展默认值的 GameNotification class。在里面加一个Game属性。
    • 只要 Game 是通知的发起者,就创建此通知的实例。

还有其他不那么令人满意的选项(丰富的模板逻辑),但希望其中之一能够很好地发挥作用。