Symfony2 - 如何打印连接表输出 [英] Symfony2 - how to print joined tables output
问题描述
的print_r
我收到这样的事情 数组
(
[0] => GameShelf\UsersBundle\Entity\Ownership对象
(
[id:GameShelf\UsersBundle\Entity\Ownership:private] => 1
[type:GameShelf\UsersBundle\Entity\Ownership:private] => 1
[time:GameShelf\UsersBundle\Entity\Ownership:private] => 2010- 02-05 11:00:00
[游戏:GameShelf\UsersBundle\Entity\Ownership:private] => Doctrine\ORM\PersistentCollection对象
(
[快照:Doctrine\ORM\PersistentCollection:private] => Array
(
[0] => GameShelf\GamesBundle\Entity\Game对象
(
[ID:GameShelf\GamesBundle \\Entity\Game:私人] =→1个
[PARENT_ID:GameShelf\GamesBundle\Entity\Game:私人] => 0
[name:GameShelf\GamesBundle\Entity\Game:private] =>有人
[slug:GameShelf\GamesBundle\Entity\Game:private] =>有人
[reldate:GameShelf\GamesBundle\Entity\Game:private] => 2010-10-10
[流派:GameShelf\GamesBundle\Entity\Game:private] => 1,2
[platform:GameShelf\GamesBundle\Entity\Game:private] => 1,2
[开发者:GameShelf\GamesBundle\Entity\Game:private] => 1,2
[description:GameShelf\GamesBundle\Entity\Game:private] => Lipsum
[desc_src:GameShelf\GamesBundle\Entity\Game:private] => http://onet.pl
[rate:GameShelf\GamesBundle\Entity\Game:private] => 0
[所有权:GameShelf\GamesBundle\Entity\Game:private] => GameShelf\UsersBundle\Entity\Ownership对象
* RECURSION *
)
)
我想要的是打印名称:GameShelf\GamesBundle\Entity\Game:private] =>有人
,但我不知道如何。我用嫩枝,我现在的模板是:
{%为游戏游戏%}
{{game.id }}
{%ENDFOR%}
但它仅输出 id
from 所有权
表。
我的控制器:
public function getOwnedAction($ type = 1 ,$ user = 1){
$ games = $ this-> getDoctrine()
- > getRepository('GameShelfUsersBundle:Ownership')
- > getOwned();
echo'< pre>';
// print_r($ games);
echo'< / pre>';
return $ this-> render('GameShelfUsersBundle:Default:index.html.twig',
array(
'games'=> $ games-> getGame ()
));
}
Repo:
public function getOwned($ type = 1,$ user = 1){
$ query = $ this-> getEntityManager()
- > createQuery
SELECT o,g FROM GameShelfUsersBundle:所有权o
JOIN o.game g
WHERE o.type =:type
')
- > setParameter('type ,$型);
try {
return $ query-> getResult();
} catch(\Doctrine\ORM\NoResultException $ e){
return null;
}
}
只有当我设置 getSingleResult
而不是 getResult
。
在Twig中,您使用相同的方法来访问实体信息。
在查看递归后,您可能需要这样做:
{%业主游戏%}
{%在owners.getGame()%游戏}
{{ game.getId()}}
{{game.getName()}}
{{game.getParentId()}}
{#etc ...#}
{ %endfor%}
{%endfor%}
I have two joined tables. With print_r
I am getting something like this
Array
(
[0] => GameShelf\UsersBundle\Entity\Ownership Object
(
[id:GameShelf\UsersBundle\Entity\Ownership:private] => 1
[type:GameShelf\UsersBundle\Entity\Ownership:private] => 1
[time:GameShelf\UsersBundle\Entity\Ownership:private] => 2010-02-05 11:00:00
[game:GameShelf\UsersBundle\Entity\Ownership:private] => Doctrine\ORM\PersistentCollection Object
(
[snapshot:Doctrine\ORM\PersistentCollection:private] => Array
(
[0] => GameShelf\GamesBundle\Entity\Game Object
(
[id:GameShelf\GamesBundle\Entity\Game:private] => 1
[parent_id:GameShelf\GamesBundle\Entity\Game:private] => 0
[name:GameShelf\GamesBundle\Entity\Game:private] => Somebody
[slug:GameShelf\GamesBundle\Entity\Game:private] => somebody
[reldate:GameShelf\GamesBundle\Entity\Game:private] => 2010-10-10
[genres:GameShelf\GamesBundle\Entity\Game:private] => 1,2
[platforms:GameShelf\GamesBundle\Entity\Game:private] => 1,2
[developers:GameShelf\GamesBundle\Entity\Game:private] => 1,2
[description:GameShelf\GamesBundle\Entity\Game:private] => Lipsum
[desc_src:GameShelf\GamesBundle\Entity\Game:private] => http://onet.pl
[rate:GameShelf\GamesBundle\Entity\Game:private] => 0
[ownership:GameShelf\GamesBundle\Entity\Game:private] => GameShelf\UsersBundle\Entity\Ownership Object
*RECURSION*
)
)
What I want, is to print name:GameShelf\GamesBundle\Entity\Game:private] => Somebody
, but I don't know how. I use Twig, my current template is:
{% for game in games %}
{{ game.id }}
{% endfor %}
But it outputs only id
from Ownership
table.
My controller:
public function getOwnedAction($type = 1, $user = 1) {
$games = $this->getDoctrine()
->getRepository('GameShelfUsersBundle:Ownership')
->getOwned();
echo '<pre>';
//print_r($games);
echo '</pre>';
return $this->render('GameShelfUsersBundle:Default:index.html.twig',
array(
'games' => $games->getGame()
));
}
Repo:
public function getOwned($type = 1, $user = 1) {
$query = $this->getEntityManager()
->createQuery('
SELECT o, g FROM GameShelfUsersBundle:Ownership o
JOIN o.game g
WHERE o.type = :type
')
->setParameter('type',$type);
try {
return $query->getResult();
} catch (\Doctrine\ORM\NoResultException $e) {
return null;
}
}
It works only when I set getSingleResult
instead of getResult
.
In Twig you use the same methods to access Entity information.
[edit] After looking at the recursion, you might need to do it this way:
{% for owners in games %}
{% for game in owners.getGame() %}
{{ game.getId() }}
{{ game.getName() }}
{{ game.getParentId() }}
{# etc... #}
{% endfor %}
{% endfor %}
这篇关于Symfony2 - 如何打印连接表输出的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!