2013-10-25 45 views
0

我想要做什么:我有我的数据库中的用户在我的控制器中,我得到他们在$用户。那些实体有一个事件属性,它存储事件对象的ID。Symfony2:将属性添加到控制器中的对象

现在在我的控制器中循环遍历我的$ users对象的用户并获取当前用户的每个id的事件。那么我想阅读这个事件的titel属性,并将其设置为用户的另一个属性,如user.eventtitle,所以我可以在我的树枝视图中访问此标题。

明白吗?即时通讯有一种方法来实现这一目标,但我不知道如果我的是最好的方式..:P

非常感谢提前!

回答

0

在你的用户类

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

添加一个代理功能或得到它在树枝模板

{{ user.event.title }} 

写自己的DQL查询发现用户事件加入了(如果你使用的教义)在一个查询中获取事件对象,并避免延迟加载。

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

编辑:

,如果你不知道如何让你的协会合作,读this

+0

不会在我的用户和用户之间建立直接连接我的活动实体?我怎么能做到这一点? 和是否有可能做一些像user.event.title? – humpdi

+0

是的,我更新了参考答案。你应该阅读它,如果你不知道如何使协会工作。我使用的是教条,所以它是一个教条文档。 – Kuro

0

为什么不创建另一个attribut与关联的getter您的用户实体类/ setter方法

protected $eventTitle; 

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

不指定任何持久性的注释。 然后你可以通过你的控制器循环来填充这个属性。

+0

会不会更好地直接连接我的用户和我的事件实体?我怎么能做到这一点? 和是否有可能做一些像user.event.title? – humpdi

+0

我以为你没有任何事件实体。那么创建一个到多个事件属性呢?如果事件不为空,您将能够在twig中执行user.event.title调用(测试'user.event已定义并且user.event') –