duan02468 2016-02-25 06:44
浏览 82
已采纳

Symfony使用statement(where子句)获取映射实体

I got a understanding question.

I got 2 mapped Entities

class news
{   
    public function __construct()
    {
        $this->newsgroups = new ArrayCollection();
    }

    /**
     * @ORM\ManyToMany(targetEntity="Unite\NewsBundle\Entity
ewsgroup",     inversedBy="news")
     * @ORM\JoinTable(name="news_to_newsgroup")
     **/
     protected $newsgroups;
....
}

And

class newsgroup
{

    public function __construct()
    {
        parent::__construct();
        $this->news = new ArrayCollection();
    }

    /**
     * @ORM\ManyToMany(targetEntity="Unite\NewsBundle\Entity
ews", mappedBy="newsgroups", cascade={"detach"})
     * @ORM\OrderBy({"undate" = "DESC"})
     **/
    protected $news;
....
}

My question: how can i get all news which are active and between date x and y WHERE newsgroup = 'x' when i'm using my newsgroup object (function getNews())

/**
 * Gets the groups granted to the user.
 *
 * @return Collection
 */
public function getNews()
{
    return $this->news ?: $this->news = new ArrayCollection();
}

Is it realy necessary to go through each news with a foreach and check if my conditions are true?

Thanks a lot my friends for your help :)

  • 写回答

2条回答 默认 最新

  • dtmtu02882 2016-02-25 08:33
    关注

    I suggest you to get news by your conditions. Query will be smth like this

    $query = $repository->createQueryBuilder('n')
                ->innerJoin('n.newsgoup', 'ng')
                ->where('ng.id > :newsGroupId')
                ->where('ng.undate BETWEEN :monday AND :sunday')
                ->setParameter('newsGroupId', '1')
                ->setParameter('monday', '2016-01-02')
                ->setParameter('sunday', '2016-02-17')
                ->getQuery();
        $news = $query->getResult();
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源
  • ¥15 安卓JNI项目使用lua上的问题