У меня есть база данных, которая выглядит следующим образом: 100
изображения ?
| id | name | src | status |
| ------------- |---------------| ------------| ----------|
| 1 | nice sun set | 1020288.jpg | published |
| 2 | poor sun set | 1120288.jpg | published |
| 3 | best sun set | 3120288.jpg | deleted |
| ------------- |---------------| ------------| --------- |
image_views ?
| id | image_id | browser_id? | created_at |
| ------------- |---------------| ------------ | ------------------ |
| 1 | 2 | 1020288e3221 |2020-02-23 13:55:11 |
| 2 | 1 | 1120288221ww |2020-02-27 13:50:51 |
| ------------- |---------------| ------------ | ------------------ |
Теперь в моем laravel приложении
Я хочу получить наиболее просматриваемое изображение в PAST за последние 7 дней.
( я хочу иметь столбец image_views, и эти представления ? должны быть сгруппированы по идентификатору браузера ).
, вот что я попробовал: ??
$image_views = DB::table('image_views')
->selectRaw('count(*) as view_count')
->where(function($query){
$query->where('image_views.image_id', 'images.id');
$query->whereDate('image_views.created_at', '>=', Carbon::now()->subDays(7)->toDateTimeString() );
});
$image = Image::select(['images.*', DB::raw('(' . $image_views->toSql() . ') as views ')])
->limit(1)
->orderBy('views', 'desc')
->where('images.status','published')
->mergeBindings($image_views)
->get();
return $image;
Так что, к сожалению, приведенный выше код не работает?
Он возвращает только пустые результаты.
Кстати у меня есть много просмотров в таблице image_views, начиная с 2⃣0⃣1⃣9⃣ до настоящего времени , просто я не могу опубликовать все здесь ..
СМЕШНО, ЧТО ЭТО, ЕСЛИ Я СЧИТАЮ ЕГО SQL И вставьте его в PHPMYADMIN. ЭТО РАБОТАЕТ, КАК ОЧАРОВАТЬ
return $image->toSql();
//->mergeBindings($image_views)
//->get();
ПОЖАЛУЙСТА, КТО-ТО СКАЖИТЕ МНЕ, ЧТО Я ДЕЛАЮ НЕПРАВИЛЬНО В LARAVEL !! ?