Php 如何在laravel中转换sql的核心查询?

Php 如何在laravel中转换sql的核心查询?,php,mysql,sql,laravel,laravel-5.2,Php,Mysql,Sql,Laravel,Laravel 5.2,我使用的是Laravel5.2框架。我想找出未来七天内发生的所有事件。在这里,我已经成功地找到了核心查询,但我想转换为laravel查询,有人能帮我吗 这是我的问题 SELECT * FROM `allocations` WHERE `date` BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 7 DAY) ; 有人能帮我吗。提前感谢:)使用雄辩的模型: use App\Allocation; // Assuming this is your Eloque

我使用的是Laravel5.2框架。我想找出未来七天内发生的所有事件。在这里,我已经成功地找到了核心查询,但我想转换为laravel查询,有人能帮我吗

这是我的问题

SELECT * FROM `allocations` WHERE `date` BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 7 DAY) ;

有人能帮我吗。提前感谢:)

使用雄辩的模型:

use App\Allocation; // Assuming this is your Eloquent model
use DB; 

Allocation::whereBetween('date', [DB::raw('NOW()'), 
    DB::raw('DATE_ADD(NOW(), INTERVAL 7 DAY)']);
使用DB Facade

use DB; 
DB::table('allocations')->whereBetween('date', [DB::raw('NOW()'), 
    DB::raw('DATE_ADD(NOW(), INTERVAL 7 DAY)']);
试试这个:

Allocation::where('date', '>', Carbon::now())
          ->where('date', '<', Carbon::now()->addWeek())
          ->get();
简单:

DB::select("SELECT * FROM `allocations` WHERE `date` BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 7 DAY)");
更复杂一点:

DB::table('allocations')->whereRaw("`date` BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 7 DAY)")->get();
如果您设置了雄辩的模型,则用您的模型名称替换
DB::table()->

Allocations::whereRaw("`date` BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 7 DAY)")->get();

我认为你输入数据的地方应该是Date你的问题中的数据是什么你是对的,这是一个输入错误。我的错。应该是dateok你能告诉我如何使用模型查询吗假设我在模型中找到了接下来的7个事件,那么我如何在控制器函数中使用…我应该使用另一个where with whereRawNo,除非你添加了更多的条件。我想这将返回我当前的一周结果,但我想要下一个7天的结果。如果你想要web服务器日期时间戳,这是一个很好的答案。但是,如果需要SQL server时间戳,则需要使用原始语句
Allocations::whereRaw("`date` BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 7 DAY)")->get();