<?php namespace Dmitry\Catalog\Http\Controllers; use App\Http\Controllers\PublicWebController as PublicController; use Dmitry\Catalog\Interfaces\CatalogRepositoryInterface; class CatalogPublicWebController extends PublicController { /** * Constructor. * * @param type \Dmitry\Catalog\Interfaces\CatalogRepositoryInterface $catalog * * @return type */ public function __construct(CatalogRepositoryInterface $catalog) { $this->repository = $catalog; parent::__construct(); } /** * Show catalog's list. * * @param string $slug * * @return response */ protected function index() { $catalogs = $this->repository->scopeQuery(function($query){ return $query->orderBy('id','DESC'); })->paginate(); return $this->theme->of('catalog::public.catalog.index', compact('catalogs'))->render(); } /** * Show catalog. * * @param string $slug * * @return response */ protected function show($slug) { $catalog = $this->repository->scopeQuery(function($query) use ($slug) { return $query->orderBy('id','DESC') ->where('slug', $slug); })->first(['*']); return $this->theme->of('catalog::public.catalog.show', compact('catalog'))->render(); } }