diff --git a/app/Http/Controllers/PublicController.php b/app/Http/Controllers/PublicController.php index fd97da53..b1ad0aad 100644 --- a/app/Http/Controllers/PublicController.php +++ b/app/Http/Controllers/PublicController.php @@ -51,55 +51,43 @@ class PublicController extends Controller public function showCategoryEvents($cat_id){ [$order, $data] = $this->sorts_filters(); - $category = Category::select('id','title_tk','title_ru','events_limit') - ->with(['children' => function($query) use($data,$order){ - $query->whereHas('cat_events', - function ($query) use($data){ - $query->onLive($data['start'], $data['end']); - }); -// ->with(['cat_events' => function($q) use($data,$order){ -// $q->onLive($data['start'], $data['end']) -// ->orderBy($order['field'],$order['order']); -// }]); -// $query->withLiveEvents($order, $data['start'], $data['end']); - }]) - ->findOrFail($cat_id); $locale = Config::get('app.locale'); $sub_cats = Category::select('id','parent_id',"title_{$locale} as title",'events_limit') - ->with(["parent:id,title_{$locale} as title","cat_events" => function($q) use ($data,$order){ - $q->select('id','sub_category_id','title_tk','title_ru') - ->onLive($data['start'],$data['end']) - ->orderBy($order['field'],$order['order']) - ->take(8); - }])->where('parent_id',$cat_id) + ->with(["parent:id,title_{$locale} as title"]) + ->where('parent_id',$cat_id)->whereHas('cat_events', + function ($query) use($data){ + $query->onLive($data['start'], $data['end']); + }) ->get(); - dd($sub_cats); - $sub_cats = $category->children; - $sub_cats_events = $sub_cats->pop() - ->cat_events()->select('id','sub_category_id','title_tk','title_ru') + + $lastKid = $sub_cats->pop(); + + $data['category'] = $lastKid?:$lastKid->parent; + + $sub_cats_events = $lastKid->cat_events() + ->select('id','sub_category_id','title_tk','title_ru') ->onLive($data['start'],$data['end']) ->orderBy($order['field'],$order['order']) - ->take($category->events_limit); + ->take($lastKid->events_limit); foreach ($sub_cats as $sub_cat){ $events_query = $sub_cat->cat_events()->select('id','sub_category_id','title_tk','title_ru') ->onLive($data['start'],$data['end']) ->orderBy($order['field'],$order['order']) - ->take($category->events_limit); + ->take($sub_cat->events_limit); $sub_cats_events = $sub_cats_events->unionAll($events_query); } $data['events'] = $sub_cats_events->get(); - $data['category'] = $category; $data['sub_cats'] = $sub_cats; - + dd($data); return $this->render("Pages.EventsPage",$data); }