55namespace App \Http \Controllers ;
66
77use App \Models \Article ;
8- use App \Models \User ;
98use App \Policies \ArticlePolicy ;
109use Illuminate \Contracts \View \View ;
11- use Illuminate \Support \Facades \Auth ;
12- use Illuminate \Support \Facades \Cache ;
1310
1411final class ArticlesController extends Controller
1512{
@@ -18,43 +15,6 @@ public function __construct()
1815 $ this ->middleware (['auth ' , 'verified ' ], ['except ' => ['index ' , 'show ' ]]);
1916 }
2017
21- public function index (): View
22- {
23- return view ('articles.index ' );
24- }
25-
26- public function show (Article $ article ): View
27- {
28- /** @var User $user */
29- $ user = Auth::user ();
30-
31- views ($ article )->record ();
32-
33- /** @var Article $article */
34- $ article = Cache::remember ('post- ' .$ article ->id , now ()->addHour (), fn () => $ article );
35-
36- abort_unless (
37- $ article ->isPublished () || ($ user && $ article ->isAuthoredBy ($ user )) || ($ user && $ user ->hasAnyRole (['admin ' , 'moderator ' ])), // @phpstan-ignore-line
38- 404
39- );
40-
41- $ image = $ article ->getFirstMediaUrl ('media ' );
42- // @phpstan-ignore-next-line
43- seo ()
44- ->title ($ article ->title )
45- ->description ($ article ->excerpt (100 ))
46- ->image ($ image )
47- ->twitterTitle ($ article ->title )
48- ->twitterDescription ($ article ->excerpt (100 ))
49- ->twitterImage ($ image )
50- ->twitterSite ('laravelcm ' )
51- ->withUrl ();
52-
53- return view ('articles.show ' , [
54- 'article ' => $ article ->loadCount ('views ' ),
55- ]);
56- }
57-
5818 public function create (): View
5919 {
6020 return view ('articles.new ' );
0 commit comments