【问题标题】:how to change my query into laravel eloquent ORM?如何将我的查询更改为 laravel 雄辩的 ORM?
【发布时间】:2017-04-21 11:09:20
【问题描述】:

我有这样的查询:

SELECT 
t1.id as id_guru, t1.nama_guru,
COALESCE(t2.total, 0) AS total
FROM `guru` t1
LEFT JOIN(SELECT id_guru, COUNT(*) as total FROM absensi_guru where status_masuk = "Terlambat" GROUP BY id_guru) t2 ON t1.id = t2.id_guru

我想将我的查询更改为 laravel Eloquent ORM,我从这个站点尝试了很多方法,甚至在 laracast 中。

【问题讨论】:

    标签: php mysql laravel laravel-eloquent


    【解决方案1】:

    如果我是你,我会在 MySQL 中使用你的 Query 创建一个 View,然后在 Laravel 中使用 Eloquent 或 Query Builder 来查询数据库。

    如果你想直接在 Laravel 中,没有视图,你需要定义 Eloquent 关系。你可以找到更多关于雄辩关系的信息HERE

    要在 Laravel 中使用,这里有一个示例代码,只是不要复制粘贴,理解它并更新您的查询

    $multipleitems = DB::table('items')
                 ->leftJoin('votes','items.itemId','=','votes.masterItemId')
                 ->select('items.itemId',DB::raw('ifnull(sum(votes.votes),0) as voteSum'))
                       ->whereBetween('votes.voteDate',array($startDate,$endDate))
                       ->where($condition)
                       ->groupBy('items.temId')
                       ->get();
    

    这里是ref

    【讨论】:

    • 不不,我在 Mysql(PHPMyAdmin) 上尝试了我的查询并且工作得很好,即使我试图将我的查询更改为 Eloquent ORM,我认为我的关系是正确的,但我总是在这一:COALCASE(t2.total,0) 因为在我的表中,它没有total 字段
    猜你喜欢
    • 1970-01-01
    • 2016-02-26
    • 1970-01-01
    • 2015-03-15
    • 1970-01-01
    • 2023-03-24
    • 2013-08-19
    • 1970-01-01
    • 2014-12-24
    相关资源
    最近更新 更多