php - 在 where 子句中使用日期时,Laravel Eloquent 返回空

标签 php mysql laravel eloquent laravel-5.3

我有简单的模型Archive,它与MySQL表紧密相关。表有日期类型的字段日期,以及一些其他字段,如 id、标题、描述等。

如果通过日期以外的任何其他字段进行查询,我将获得所有所需的结果。到目前为止,模型仅返回空结果。

$criteria = array(['prog_i','=',9], ['date','>=','2017-11-01'], ['date','<=','2017-11-11']); 
$offset = 0;

$query = Archive::where($criteria)
                    ->orderBy('date', 'desc')
                    ->skip($offset)
                    ->take(40);

$results = $query->get();
var_dump($results); 

/* object(Illuminate\Database\Eloquent\Collection)#350 (1) { ["items":protected]=> array(0) { } } 
*/

但是,如果我在 phpMyAdmin 中使用 Laravel(来自调试器)构建的相同查询进行测试,它工作得很好并且正在返回结果。

select * from `archive` where (`prog_id` = '9' and `date` >= '2017-11-01' and `date` <= '2017-11-11') order by `date` desc limit 40 offset 0

Showing rows 0 - -1 (4 total, Query took 0.3204 seconds.)

可能出了什么问题?

最佳答案

你应该使用

$query = Archive::where('prog_id','=',9)
  ->whereBetween('date',['2017-11-01','2017-11-11'])
   ->orderBy('date', 'desc')
   ->skip($offset)
    ->take(40);

关于php - 在 where 子句中使用日期时,Laravel Eloquent 返回空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47475376/

相关文章:

mysql - 如何在无迁移系统中处理数据库?

php - 我可以在一个 MySQL 查询中使用多个 WHERE 语句吗?

php - 使用 Guzzle 通过 Curl 请求传递客户端证书

laravel 工作/通知失败

php - 在 sql 比较查询之前将长字符串转换为短哈希 - 提高性能?

php - 选择具有值条件的数组的随机索引

php - mysql INSERT INTO 查询 - 语法错误

php - 将 "selected"属性添加到 PHP 中的选定选项

php - 需要帮助将此 php mysql 代码转换为 mysqli

php - Laravel 架构生成器 |独特的、区分大小写的列