我有复杂的查询构建器,可以从images_tags表中获取与图像关系的所有图像
$tags = [1, 2, 3];
$items = ImagesTable::with(['images_tags' => function ($query) use ($tags) {
$tags = $query->select('image_id', ImageTag::raw('count(tag_id) as total'))
->whereIn('tag_id', $tags)
->groupBy('image_id')
->having(['total', 3])
->get();
return $tags;
}])->get();
和两个表
(images)-(images_tags) 1-n
images (
id int
title varchar(255)
)
images_tags (
id int
image_id,
tag_id int
constraints fk foreign key('image_id') on images('id')
)
但我得到错误
Grammar.php第58行中的ErrorException:
strtolower()期望参数1为字符串,给定对象
我发现此行代码导致错误
ImageTag::raw('count(tag_id) as total')
我不知道为什么会这样?
答案 0 :(得分:1)
[求助]这个问题解决了!
我用\ DB替换了ImageTag并且它可以工作。