我想将输入日期作为参数,并在输入中给出的日期之间进行搜索。
这些是laravel提供的时间戳(),用于创建两个字段created_at和upated_at。我想在这些日期之间搜索,这些日期在created_at和updated_at中给出,但无法在这些日期之间找到数据。 以下是我创建的代码
` $startDate = $request->input('created_at');
$endDate = $request->input('updated_at');
->select()
->whereBetween('created_at','updated_at',[$startDate,$endDate])
->get();`
答案 0 :(得分:1)
我认为whereBetween
只接受2个参数。第一个是列名,第二个是包含要测试的值的数组。检查:https://laravel.com/docs/5.5/queries#where-clauses
你会想要这样的东西:
->whereBetween('created_at', [$startDate,$endDate])
->whereBetween('updated_at', [$startDate,$endDate])
答案 1 :(得分:1)
错误:
参数2传递给Illuminate \ Database \ Query \ Builder :: whereBetween() 必须是数组类型
是因为whereBetween()
的第二个参数是一个数组,你在这里传递一个字符串'updated_at'
。所以把它改为:
->whereBetween('created_at', [$startDate,$endDate])
->whereBetween('updated_at', [$startDate,$endDate])