CategoryController.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?php
  2. namespace App\Http\Controllers\Home\Blog;
  3. use App\Models\Blog\Article;
  4. use App\Models\Blog\ArticleTag;
  5. use App\Models\Blog\Category;
  6. use App\Models\Blog\Tag;
  7. use Illuminate\Http\Request;
  8. use App\Http\Controllers\Controller;
  9. use Illuminate\Support\Facades\Auth;
  10. class CategoryController extends CommonController
  11. {
  12. //
  13. public function show($category)
  14. {
  15. $size = 20;
  16. $data = Article::with('category:id,cate_name')
  17. ->leftJoin('blog_categories', 'blog_categories.id', 'blog_articles.cate_id')
  18. ->where('blog_categories.cate_name', '=', $category)
  19. ->select( 'cate_id', 'slug', 'title', 'read_count', 'created_at', 'is_top', 'description')
  20. ->orderByDesc('is_top')->orderByDesc('created_at');
  21. $data = $data->paginate($size)->toArray();
  22. $this->sidebar($data);
  23. $description = $category.'-';
  24. $curLen = mb_strlen($description, 'UTF8');
  25. foreach ($data['data'] as $article) {
  26. $curLen += mb_strlen($article['title'], 'UTF8');
  27. if ($curLen > 150) break;
  28. $description .= $article['title'];
  29. }
  30. $data['meta']['title'] = '关于'.$category.'的文章 - '.config("vienblog.blog.name");
  31. $data['meta']['description'] = $description;
  32. $data['meta']['keywords'] = $category;
  33. return view('home.index', $data);
  34. }
  35. }