猿问

如何在 Laravel 查询选择中一起添加 2 个别名值?

我有一个任务表,用于跟踪任务的汽车里程表值。一项任务与其自身相关,并且具有由具有一个关系定义的一项先前任务。我正在尝试创建一个范围来提取查询中的complete_at_odometer 值。


该值等于前一个任务的completed_at_odometer值加上当前任务需要重复的频率。例如当前的任务A需要每10英里完成一次。最后一个任务,任务 B 在 5 英里处完成。我正在尝试创建一个范围,将值complete_at_odometer 添加到应等于 15 的结果中。


这是我到目前为止所拥有的:


public function scopeWithCompleteByOdometer($query)

{

    return $query

        ->join('tasks as oldTask', 'oldTask.current_task_id', '=', 'tasks.id')

        ->select(

            '*',

            'oldTask.completed_at_odometer as last_odometer',

            'tasks.distance_interval as interval'

        );

}

我不确定如何将值last_odometer 和interval 添加在一起,同时保留在应用程序的数据库层中?


我正在使用 Laravel 7 和 MySql 5.7。


谢谢你的帮助!


牧羊人nacy
浏览 104回答 1
1回答

慕神8447489

使用DB::raw查询:return $query    ->join('tasks as oldTask', 'oldTask.current_task_id', '=', 'tasks.id')    ->select(DB::raw('(oldTask.completed_at_odometer + tasks.distance_interval) AS total'));或者从这样获得的结果中求和$a = $row->completed_at_odometer;$b = $row->distance_interval;$total = $a+$b
随时随地看视频慕课网APP
我要回答