报错:

SQLSTATE[42000]: Syntax error or access violation: 1055 'demo.archives.id' isn't in GROUP BY (SQL: select `id`, `author`, count(*) as total from `archives` where `created_at` >= 2016-10-18 and `created_at` < 2016-10-19 group by `author`

原因可能有两个:
1、laravel的’config/database.php’:下面的mysql配置:
‘strict’ => true,这个使用的是严格模式,效果和distinct类似。把这里改为false即可;
2、如果做了第一步还是不行,那就说明是mysql的sql_mod设置也有设置,查看sql_mod:

select @@global.sql_mode;
show variables like 'sql_mode%';

这两条语句可以查看mysql里面sql_mod的全局设置和当前客户端的sql_mode设置,看看里面是不是有一个only_full_group_by的东东?
把这个结果复制出来,去掉only_full_group_by之后,然后运行下面的语句。

set sql_mode="除去full_group_by之后的字符串";
set @@global.sql_mode="除去full_group_by之后的字符串";

或者直接运行:

set sql_mode="TRADITIONAL";
set @@global.sql_mode="TRADITIONAL";
再次运行程序,是不是就可以了呢?