nik*_*aft 7 laravel eloquent laravel-5.2 laravel-5.3
此查询适用于5.2:
$galleries = Gallery::with(array(
'images' => function ($query) {
$query->orderBy('order', 'asc');
}
))
->with('votes')
->leftJoin('votes', 'votes.votable_id', '=', 'gallery.id')
->selectRaw(
'gallery.*, count(case votes.status when "upvote" then 1 else null end) - count(case votes.status when "downvote" then 1 else null end) as points'
)
->where('votes.votable_type','App\Gallery')
->groupBy('gallery.id')
->orderBy('points', 'desc')
->published()->orderBy('gallery.created_at', 'desc')->paginate(30);
Run Code Online (Sandbox Code Playgroud)
我试图选择所有有选票的画廊,当我在5.3中运行时,我得到了这个
1/2 PDOException in Connection.php line 333: SQLSTATE[42000]:
Syntax error or access violation: 1055 'images.gallery.title' isn't in GROUP BY
SQLSTATE[42000]: Syntax error or access violation: 1055 'images.gallery.title' isn't in
GROUP BY (SQL: select gallery.*, count(case votes.status when "upvote" then 1 else null end) - count(case votes.status when "downvote" then 1 else null end)
as points from `gallery` left join `votes` on `votes`.`votable_id` = `gallery`.`id`
where `votes`.`votable_type` = App\Gallery and `published` = 1 group by `gallery`.`id`
order by `points` desc, `gallery`.`created_at` desc limit 30 offset 0)
Run Code Online (Sandbox Code Playgroud)
Swa*_*ule 12
转到config/database.php文件夹.在mysql配置数组中,更改strict => true为strict => false,一切都会很好地工作.
根据文档,您的加入查询应该像这样参考 -: https: //laravel.com/docs/5.3/upgrade#upgrade-5.3.0
$galleries = Gallery::with(array(
'images' => function ($query) {
$query->orderBy('order', 'asc');
}
))
->with('votes')
->leftJoin('votes',function($query){
$query->on('votes','gallery')->where('votes', 'votes.votable_id', '=', 'gallery.id')->where('votes.votable_type','App\Gallery'); })->selectRaw(
'gallery.*, count(case votes.status when "upvote" then 1 else null end) - count(case votes.status when "downvote" then 1 else null end) as points'
)
->groupBy('gallery.id')
->orderBy('points', 'desc')
->published()->orderBy('gallery.created_at', 'desc')->paginate(30);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3373 次 |
| 最近记录: |