/** * get the specific category and display its posts * * @return \Illuminate\View\View */ public function getView($category_id) { $cat = Category::find($category_id); $child = Category::where('parent_id', $category_id)->get(); $states = State::all(); $posts = null; if (count($cat->subCategories->toArray()) > 0) { //$posts = DB::select('SELECT * FROM posts WHERE category_id IN (SELECT id FROM categories WHERE parent_id = ? ORDER BY published_at DESC)', [$category_id]); $cats = Category::where('parent_id', $category_id)->lists('id'); $posts = Post::whereIn('category_id', $cats)->orderBy('published_at', 'desc')->paginate(config('traydes.posts_per_page')); } else { //$posts = $cat->posts; $posts = Post::where('category_id', $category_id)->orderBy('published_at', 'desc')->paginate(config('traydes.posts_per_page')); } return view('index.view', ['posts' => $posts, 'child' => $child, 'states' => $states]); }
/** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { $categories = Category::where('parent_id', 0)->get(); return view('user.categories.index', ['categories' => $categories]); }
/** * displaying the form for new posting * * @param Request $request * @return \Illuminate\View\View */ public function getNew(Request $request) { $req = $request->get('c'); $categories = null; $template = ['user.posts.templates.index', 'user.posts.templates.form']; $index = 0; if ($req != null) { $category = Category::find($req); // dd($category->subCategories->count()); if (count($category) > 0) { //not empty $categories = Category::where('parent_id', '=', $req)->get(); } if ($category->subCategories->count() > 0) { $index = 0; } else { $index = 1; } return view('user.posts.create', ['categories' => $categories, 'category_id' => (int) $req, 'template' => $template[$index]]); } $categories = Category::where('parent_id', '=', 0)->get(); return view('user.posts.create', ['categories' => $categories, 'template' => $template[$index]]); }
@include('partials.search') {{--filter by categories--}} <div class="panel panel-default"> <div class="panel-heading">Filter by Category</div> <div class="list-group"> <?php $categories = \Traydes\Category::where('parent_id', 0)->get(); ?> @if(!empty($categories)) @foreach($categories as $category) <a href="{{ url('t/view/'.$category->id) }}" class="list-group-item @if(Request::is('t/view/'.$category->id)) active @endif">{{ $category->name }}</a> @if(!empty($category->subCategories()) && Request::is('t/view/'.$category->id)) @foreach($category->subCategories as $sub) <a href="{{ url('t/view/'.$sub->id) }}" class="list-group-item @if(Request::is('t/view/'.$sub->id)) active @endif">{{ $sub->name }}</a> @endforeach @endif @endforeach @endif </div> </div> {{--filter by states--}}
/** * display all the root categories / the request will be the parent id * of the child categories to be displayed * * @param Request $request * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ public function getCategories(Request $request) { $req = $request->get('id'); $categories = null; $current = null; if ($req == null) { $categories = Category::where('parent_id', 0)->get(); } else { $category = Category::find($req); $current = $category; $categories = $category->subCategories()->get(); } return view('admin.category.index', ['categories' => $categories, 'current' => $current]); }