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条)

报告相同问题?

悬赏问题

  • ¥15 求给定范围的全体素数p的(p-2)的连乘积
  • ¥15 VFP如何使用阿里TTS实现文字转语音?
  • ¥100 需要跳转番茄畅听app的adb命令
  • ¥50 寻找一位有逆向游戏盾sdk 应用程序经验的技术
  • ¥15 请问有用MZmine处理 “Waters SYNAPT G2-Si QTOF质谱仪在MSE模式下采集的非靶向数据” 的分析教程吗
  • ¥50 opencv4nodejs 如何安装
  • ¥15 adb push异常 adb: error: 1409-byte write failed: Invalid argument
  • ¥15 nginx反向代理获取ip,java获取真实ip
  • ¥15 eda:门禁系统设计
  • ¥50 如何使用js去调用vscode-js-debugger的方法去调试网页