Symfony2:向控制器中的对象添加属性

时间:2013-10-25 11:58:38

标签: symfony

我想做什么:我的控制器中有我的数据库中的用户我在$ users中获取它们。那些实体有一个event-property,它存储了一个event-object的id。

现在在我的控制器中,我遍历我的$ users对象的用户,并获取当前用户的每个id的事件。然后我想读取这个事件的titel-property并将其设置为用户的另一个属性,如user.eventtitle,所以我可以在我的twig-view中访问这个标题。

理解?我觉得有一种方法可以达到这个目的,但如果我的方法是最好的方式,我就不会感到害羞..:P

提前多多感谢!

2 个答案:

答案 0 :(得分:0)

为什么不使用关联的getter / setter

为您的User实体类创建另一个attribut
protected $eventTitle;

public function getEventTitle() {
    return $this->eventTitle;
}

您没有指定任何持久性注释。 然后,您可以通过控制器循环填充此属性。

答案 1 :(得分:0)

在您的用户类

中添加代理功能
public function getEventTitle(){
    return $this->event->getTitle();
}

或在树枝模板中获取

{{ user.event.title }}

编写自己的DQL查询,以查找已加入事件的用户(如果您正在使用doctrine)在一个查询中获取事件对象,并避免延迟加载。

SELECT u, e FROM YourBundle:User u LEFT JOIN u.event WHERE u.id = :id

编辑:

如果您不知道如何让您的协会发挥作用,请阅读this