Laravel Eloquent AS 关键字

标签 laravel eloquent

我正在尝试使用关键字 AS 来组合两列,以便我可以对该列进行排序。

这是目前的完整查询。

$quotes = Quote::where('created_at', '>=', $date)
        ->where('created_at', '<=', date('Y-m-d').' 23:59:59')
        ->order_by('upvotes', 'desc')
        ->paginate(5);

我想做

->order_by('(downvotes - upvotes) as votes', 'desc')

谢谢。


解决方案

似乎使用 DB::raw() 是唯一的方法,Laravel/Eloquent 就是不理解 AS。

工作解决方案是

 $quotes = Quote::select(array('id', DB::raw('(downvotes - upvotes) as votes'), 'upvotes', 'downvotes', 'etc')) // Rest of column needed.
        ->where('created_at', '>=', $date)
        ->where('created_at', '<=', date('Y-m-d').' 23:59:59')
        ->order_by('votes', 'asc')
        ->paginate(5);

最佳答案

试试这个:

Quote::where('created_at', '>=', $date)
        ->select(array('id',DB::raw('(downvotes - upvotes) as votes'))) //and what you need
        ->where('created_at', '<=', date('Y-m-d').' 23:59:59')
        ->order_by('upvotes', 'desc')
        ->order_by('votes', 'desc')
        ->paginate(5);

关于Laravel Eloquent AS 关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15158139/

相关文章:

laravel - 发送变量以在中间件中终止

php - Laravel - 延迟服务提供者如何工作?

php - Laravel 中如何避免缓存碰撞?

laravel-4 - 调用未定义的方法 Illuminate\Database\Query\Builder::save()?

mysql - 模型的关系 (Laravel 5.2)

css - "dropdown-toggle"默认关闭

php - 运行应用程序时找不到类错误

php - Laravel 关系查询

php - Laravel 中的计数函数机制

php - Laravel Eloquent 获取所有行及其各自的数据透视表行