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

时间:2017-02-21 14:59:17

标签: php mysql sql laravel laravel-5.2

我正在使用laravel 5.2框架。我想找到接下来七天发生的所有事件。在这里,我已成功找到核心查询,但我想用laravel查询转换任何人都可以帮助我

这是我的查询

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

任何人都可以帮助我。在此先感谢:)

3 个答案:

答案 0 :(得分:2)

试试这个:

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

更新

我不确定这是否也有效,但请尝试一下;

Allocation::whereBetween('date', [Carbon::now(), Carbon::now()->addWeek()])->get();

答案 1 :(得分:1)

简单:

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();

如果您设置了Eloquent模型,请将DB::table()->替换为您的型号名称:

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

答案 2 :(得分:0)

使用Eloquent模型:

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)']);

使用数据库外观

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