为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
牧羊人nacy 2023-09-22 16:58:45
我有一个任务表,用于跟踪任务的汽车里程表值。一项任务与其自身相关,并且具有由具有一个关系定义的一项先前任务。我正在尝试创建一个范围来提取查询中的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。谢谢你的帮助!
查看完整描述

1 回答

?
慕神8447489

TA贡献1780条经验 获得超1个赞

使用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


查看完整回答
反对 回复 2023-09-22
  • 1 回答
  • 0 关注
  • 62 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信