PageController.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Http\Request;
  4. use App\Services\LiquidRenderer;
  5. use App\Models\DistPages;
  6. class PageController extends Controller
  7. {
  8. protected $liquidRenderer;
  9. public function __construct(LiquidRenderer $liquidRenderer)
  10. {
  11. $this->liquidRenderer = $liquidRenderer;
  12. }
  13. /**
  14. * Display a listing of the pages.
  15. *
  16. * @return \Illuminate\Http\Response
  17. */
  18. public function list()
  19. {
  20. $pages = DistPages::paginate(10)->where('status', '1'); // 每页显示10个页面
  21. return $this->liquidRenderer->render('pages.list', ['pages' => $pages]);
  22. }
  23. /**
  24. * Display the specified page.
  25. *
  26. * @param string $slug
  27. * @return \Illuminate\Http\Response
  28. */
  29. public function detail($slug)
  30. {
  31. $page = DistPages::where('status', '1')->where('slug', $slug)->first();
  32. // 如果没有找到且是数字,通过 id 获取页面
  33. if (!$page) {
  34. if (is_numeric($slug))
  35. {
  36. $page = DistPages::where('status', '1')->where('id', $slug)->firstOrFail();
  37. }
  38. else{
  39. abort(404);
  40. }
  41. }
  42. return $this->liquidRenderer->render('pages_detail.liquid', ['page' => $page]);
  43. }
  44. }