使用whereRaw子句显示数据

时间:2019-04-22 12:07:14

标签: datatables laravel-5.4

这个问题是关于如何仅从2019-04-01开始在数据表中显示返回数据。

我尝试了whereRaw子句,但它对我的期望没有作用。

代码如下:

 case 'total_bets':
                $data = $user->bets()->with(['team', 'match' => function($query)
                    {
                        $query->select('id', 'name', 'status', 'team_winner');
                    }, 'league' => function($query)
                    {
                        $query->select('id', 'name', 'status', 'betting_status', 'league_winner');
                    }])->whereRaw("date(bets.created_at) >= '2019-04-01'")->orderBy('updated_at', 'desc');

                return \Datatables::of($data)->addColumn('potential_winnings', function (\App\Bet $bet) use($user)
                })->make(true);

任何想法如何处理?谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用Laravel的Carbon库。 在您的控制器中,使用以下命令添加Carbon库:

use Carbon\Carbon;

例如。

$date = Carbon::create(2019, 4, 1, 0, 0, 0, '{what-ever-timezone}');
$data = $user->bets()->with(['team', 'match' => function($query) use ($date)
                    {
                        $query->select('id', 'name', 'status', 'team_winner');
                    }, 'league' => function($query)
                    {
                        $query->select('id', 'name', 'status', 'betting_status', 'league_winner');
                    }])->where('bets.created_at', '>=', $date)->orderBy('updated_at', 'desc');

                return \Datatables::of($data)->addColumn('potential_winnings', function (\App\Bet $bet) use($user)
                })->make(true);