繁体   English   中英

树枝中的Symfony键阵列

[英]Symfony key array in twig

我想显示一个实体的信息。

具有该信息的实体与另一个实体相关,因此我使用查询来获取该信息。

class Playlist
{
    private $id;

    private $name;

    private $items;

    public function __construct()
    {
        $this->items = new \Doctrine\Common\Collections\ArrayCollection();
    }

    public function addItem(\Publicartel\AppBundle\Entity\PlaylistContent $content)
    {
        $content->setPlaylist($this);

        $this->items->add($content);

        return $this;
    }

    public function removeItem(\Publicartel\AppBundle\Entity\PlaylistContent $content)
    {
        $this->items->removeElement($content);
    }

    public function getItems()
    {
        return $this->items;
    }
}

class PlaylistContent
{
    private $content;

public function setContent(\Publicartel\AppBundle\Entity\Content $content = null)
    {
        $this->content = $content;

        return $this;
    }

    public function getContent()
    {
        return $this->content;
    }

}

//控制器:

$playlists = $em->getRepository('PublicartelAppBundle:Playlist')->getAllPlaylist();

return $this->render('PublicartelAppBundle:Player:calendar.html.twig', array( 
'playlists' => $playlists,
));

//查询

public function getAllPlaylist()
    {
        $em = $this->getEntityManager();

        $dql = 'SELECT p, cnt, plc FROM Publicartel\AppBundle\Entity\Playlist p
                LEFT JOIN p.items cnt
                LEFT JOIN cnt.content plc';

        $query = $this->getEntityManager()
            ->createQuery($dql)
            ->setHydrationMode(\Doctrine\ORM\Query::HYDRATE_ARRAY);

        return $query->execute();
    }

协商会查找内容实体的元素,因此它需要在“项”和“内容”上进行左连接。

//树枝模板

我试图通过两种方式访问​​该元素:

{% for playlist in playlists.items.content %}
    <img src="/{{ playlist.path}}"> 
{% endfor %}

第215行的PublicartelAppBundle:Player:calendar.html.twig中不存在具有键“ 0,1”的数组的键“项目”

{% for playlist in playlists %}
    <img src="/{{ playlist.items.content.path }}">
{% endfor %}

第223行的PublicartelAppBundle:Player:calendar.html.twig中不存在带有键“ 0、1”的数组的键“内容”

“路径”是我要显示的实体“内容”的属性。

我猜你需要像这样循环:

{% for playlistContent in playlists.items %}
    {% if playlistContent.content is not null %}
        <img src="/{{ playlistContent.content.path }}"> 
    {% endif %}
{% endfor %}

编辑

发现:

{% for playlist in playlists %}
    {% for playlistContent in playlist.items %}
        <img src="/{{ playlistContent.content.screenshot}}">
        <img src="/{{ playlistContent.content.path}}">
    {% endfor %}    
{% endfor %}

playlists.items是对象数组,而不是对象。 因此,您必须遍历它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM