【问题标题】:Laravel Query Builder IssueLaravel 查询生成器问题
【发布时间】:2018-11-16 20:05:45
【问题描述】:

我正在尝试使从数据库中提取的项目仅来自当前月份,但是当我使用各种方法执行此操作时,它会引发错误(由于提到的问题,我无法调试here)。在下面的代码中,如果我只是简单地对完整结果进行分页,它可以正常工作,但是当我开始使用查询构建器方法时它会给出错误,有人知道为什么会发生这个错误吗?

public function index()
{
//        $trades=Trade::paginate(10);

    $currentMonth = date('m');
    $trades = DB::table('trades')->whereMonth('date', $currentMonth)->paginate(10);

//        dd($trades);

    $pastwinners=Winner::paginate(10);
    return view('raffle', compact('pastwinners'), compact('trades'));
}

正如您在上面看到的 $pastwinners 变量和第一个 $trades 变量提供了正确的值,但是当我尝试仅选择本月的那些(使用“日期”字段)时,它似乎中断了。

【问题讨论】:

  • Trade:: 代替 DB::table('trades')-> 有效吗? ->get() 代替 ->paginate(10) 有效吗?
  • 是的,被注释掉的第一行工作正常,但我希望能够只选择当月的项目。
  • Trade::whereMonth('date', $currentMonth)->get(); 有效吗? dd(Trade::whereMonth('date', $currentMonth)->toSql()); 的结果是什么?
  • 它与 dd 一起工作,但是在我渲染视图时中断,我需要能够对结果进行分页。第二行的结果是select * from 'trades' where month('date') = ?
  • 你可以发布视图吗?

标签: mysql laravel-5 laravel-5.6 laravel-query-builder


【解决方案1】:

试试这个。如果您想对结果进行分页,请不要忘记将分页链接添加到您的视图中。也不要忘记在你的控制器类中导入Carbon

https://laravel.com/docs/5.6/pagination

    public function index()
    {
        $trades = Trade::whereMonth('date' , Carbon::today()->month)->paginate();

        $pastwinners = Winner::all();

        return view('raffle', compact('pastwinners', 'trades');
    }

【讨论】:

  • 我需要能够对结果进行分页。
  • 请查看我编辑的答案,让我知道它是否有效。
猜你喜欢
  • 1970-01-01
  • 2019-03-29
  • 2017-08-13
  • 2015-08-06
  • 2021-08-11
  • 1970-01-01
  • 2021-01-10
  • 2018-12-30
  • 1970-01-01
相关资源
最近更新 更多