【问题标题】:how to change sql query to laravel model query without DB如何在没有 DB 的情况下将 sql 查询更改为 laravel 模型查询
【发布时间】:2021-06-19 11:00:14
【问题描述】:

我打算将 sql 查询更改为没有 DB 的 laravel 模型查询。 DB 表示illuminate\Fascade\DB

   ->join(array(\DB::expr('(select SUM(p.amount) as paid, p.case_id
                        from payments p
                        where p.status_id = 3
                        group by p.case_id)'),'p'), 'LEFT')->on('p.case_id','=','c.id')

这是fuelphp的sql查询。 我想用 laravel 模型风格改变它。 如何转换?

【问题讨论】:

    标签: php mysql laravel eloquent model


    【解决方案1】:

    猜测整个 sql 查询非常困难,但通常需要两个模型。你需要create relations between them,然后你才能使用 Eloquent。

    例如有两个模型(读取表) - 用户和付款:

    class User extends Model
    {
        public function payments(): HasMany
        {
            return $this->hasMany(Payment::class);
        }
    }
    
    class Payment extends Model
    {
        public function user(): BelongsTo
        {
            return $this->belongsTo(User::class);
        }
    }
    

    然后你可以创建 Eloquent 查询:

    Payment::with('user')->where('status_id', 3)->sum('amount')
    

    【讨论】:

    猜你喜欢
    • 2018-06-27
    • 1970-01-01
    • 2020-08-09
    • 1970-01-01
    • 2012-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-03
    相关资源
    最近更新 更多