duancashi1362 2014-02-10 20:16
浏览 16
已采纳

如何用doctrine创建mysql请求

I want to convert my sql row to doctrine object.

SELECT * FROM t_download GROUP BY download_yt_id ORDER BY download_id DESC LIMIT 50

I have maked that but that doesn't work :

$Download = new Download();


        $em = $this->getDoctrine()->getManager();
        $query = $em->createQueryBuilder();

        $query
            ->select('distinct :id')
            ->from('DimiYvmBundle:Download', 'd')
            ->orderBy(':id', 'DESC')
            ->setParameter('id', $Download->getId());


        $query->setMaxResults(50);

        $lastdl = $query->getQuery()->getResult();

My Entity Download with getter and setters:

    namespace Dimi\YvmBundle\Entity;

    use Doctrine\ORM\Mapping as ORM;

    class Download
    {

        private $id;

        private $ytId;

        private $date;

        private $title;

        public function getId()
        {
            return $this->id;
        }

    public function setYtId($ytId)
        {
            $this->ytId = $ytId;

            return $this;
        }

        public function getYtId()
        {
            return $this->ytId;
        }

        public function setTitle($title)
        {
            $this->title = $title;

            return $this;
        }

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

        public function setDate($date)
        {
            $this->date = $date;

            return $this;
        }

        public function getDate()
        {
            return $this->date;
        }

        public function getLastDownload()
        {
            // SELECT * FROM t_download GROUP BY download_yt_id ORDER BY download_id DESC LIMIT 50
        }

    }

I would like to include in my model my getLastDownload method. Do you know how I can do that ?

Thanks you all for your helping. Best regards,

  • 写回答

1条回答 默认 最新

  • doumei7420 2014-02-10 20:24
    关注

    You are probably looking for something simple as this?

    $query->select('d')
            ->from('DimiYvmBundle:Download', 'd')
            ->orderBy('d.id', 'DESC')
            ->andWhere('d.id', ':id')
            ->setParameter('id', $Download->getId());
    
    $lastdl = $query->getQuery()->getResult();
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题
  • ¥15 企业资源规划ERP沙盘模拟
  • ¥15 树莓派控制机械臂传输命令报错,显示摄像头不存在
  • ¥15 前端echarts坐标轴问题