2017-05-14 1 views
1

나는 images_tags 테이블오류가 5

$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')

,

그리고 왜 그런지 모르겠습니다.

+1

ImageTag 대신 \ DB를 사용해 볼 수 있습니까? 또는 \ ImageTag와 같이 ImageTag 앞에 \를 사용하십시오. 이 \ ImageTag :: raw ('count (tag_id) as total') OR \ DB :: raw ('count (tag_id) as total')로 보자. – manian

+0

네. 당신은 사실입니다, @manian! 고마워요. –

+0

그것이 효과가있어 기쁩니다. 해피 코딩 :) – manian

답변

0

[해결]이 질문이 해결되었습니다.
ImageTag를 \ DB로 바꿔서 작동합니다.

관련 문제