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