首页 文章

将SQL查询转换为Laravel查询生成器

提问于
浏览
0

我是Laravel的新手我有一个复杂的查询,它是子查询和连接的组合 . 但不确定如何将原始查询转换为Laravel查询格式 . 这是我的查询的样子 .

我面临的问题主要是处理 AS ,因为这不是查询构建器中可用的函数我也试图理清 CASE ,但 u1u2 看起来未定义 .

select  `ep`.`id`, `ep`.`title`, `ep`.`slug`, `ep`.`status`, `ep`.`active`,`ep`.`visitor_id`,`ep`.`type`, `friends`.`customername`, `ep`.`created_at`, epblock.reference_id  from enr_posts as ep

JOIN (SELECT  
        (CASE WHEN u2.id = 3
              THEN u1.name
              ELSE u2.name
             END ) as customername,
        (CASE WHEN u2.id = 3
              THEN u1.id
              ELSE u2.id
             END ) as customer_id,
        fr.status
        FROM enr_friend_requests fr
        JOIN enr_customers u1 ON fr.sent_by=u1.id
        JOIN enr_customers u2 ON fr.received_by=u2.id

        where (fr.sent_by=3 or fr.received_by=3) AND fr.status="accepted") as friends 
ON ep.visitor_id=friends.customer_id
LEFT JOIN enr_post_customer_block as epblock
ON `ep`.`id` = epblock.reference_id AND epblock.customer_id=3

WHERE
    `ep`.`active`=1 AND
    `ep`.`status`=1 AND
    epblock.reference_id IS NULL
ORDER BY 
    `ep`.`id` DESC

在线还有任何生成器工具吗?因为我研究的工具很少,但它们对我不起作用 .

谢谢!

1 回答

  • 1

    您可以使用Maurice Calhoun的在线工具 Orator 将原始和遗留 SQL 查询转换为Laravel数据库查询构建器版本 . 这个生成器对于学习Laravel的人来说也是一个很好的工具,因为它可以帮助他们将 SQL 查询转换为查询构建器对象,因为学习新的 ORM 有时可能是新开发人员面临的挑战 .

    更多信息在这里

    https://laravel-news.com/convert-sql-laravel-builder-orator

相关问题