내 웹 사이트에서 사용자가 이미지/이미지/좋아하는 이미지/등을 업로드 할 수 있도록 허용합니다.Laravel의 다른 테이블의 orderBy 속성
따라서, 나는 이미지의 테이블을 가지고, 등, 즐겨 찾기, 좋아하는
내가 얻고 잘 이러한 이미지를 표시하고 내가 좋아하는 그들을 정렬 할 수 있습니다
$images = Images::orderBy('id', 'desc')->Paginate(50);
내가 할 수있는 또한 이미지에 얼마나 좋아하는/즐겨 찾기가 표시되는지 보여줍니다.
$favCount = Favorite::where('image_id', $image->id)->count();
그러나 내가 갖고있는 즐겨 찾기의 개수를 기준으로 이미지를 정렬하려면 어떻게해야합니까? 내가 가장 좋아하는 모델과 이미지 모델을 가지고 있지만 어떻게 할 것인지 잘 모르겠습니다.
는편집 : 주어진 답변
현재 쿼리
$images = Images::join('favorites', 'favorites.image_id', '=', 'images.id')
->select('images.link', DB::raw('count(favorites.id) as favs'))
->orderBy('favs', 'desc')
->groupBy('images.link')
->take(10)
->get();
그리고 오류는 다음과 같습니다
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'images' in 'field list' (SQL: select
images
, count(favorites.id) as favs fromimages
inner joinfavorites
onfavorites
.image_id
=images
.id
group byimages
.link
order byfavs
desc limit 10)
'DB'로 시도해 봤습니까? 오류는'Images :: raw()'에서 비롯된 것 같습니다. 'Images :: raw'를'DB :: raw()'로 바꾸어보십시오. 또는 내가했던 것처럼'DB'를 사용하여 모든 쿼리를 수행하십시오. 결과를 확인하십시오. 부디. – EddyTheDove
아, 네가 옳았다. 죄송합니다. 원시 표현을 사용하는 것은 이번이 처음입니다. 그래도 오류가 발생했습니다. 새로운 질의와 오류는 메인 포스트에있을 것입니다. 도와 줘서 고마워! –
'link' 또는'name' 속성이 있다면'images' 테이블에 있습니다. 'select ('link', DB :: raw ('count (favorites.id) as favs'))'를 시도하십시오. 'images'테이블에 'images'속성이없는 것 같습니다. 내가 한 것처럼'DB'로 모든 것을 시도해 볼 수 있습니까? – EddyTheDove