Files
new_haai/app/Http/Controllers/CategoryController.php
2022-08-19 19:51:58 +08:00

73 lines
2.0 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\Article;
use App\Models\Category;
class CategoryController extends Controller
{
//显示分类
public function show(Category $category)
{
if ($category->type == Category::TYPE_SHOW) {
if ($category->relations) {
return redirect(route('article.show', $category->relations));
}
}
$parent = getTopCate($category->id);
$template = array_flip(config('haai.category'));
if (isset($template[$category->id]) && ! in_array($category->id, config('haai.no_list'))) {
return view('category.'.$template[$category->id], compact('category', 'parent'));
}
return redirect(route('category.list', $category));
}
//显示文章列表
public function list(Category $category)
{
$take = 15;
$template = 'category.list';
if (in_array($category->id, [29, 30])) {
$take = 16;
$template = 'category.persons';
}
if ($category->id == 74) {
$categories = Category::get();
$cate_ids = array_merge([$category->id], getAllChild($categories, $category->id));
} else {
$cate_ids = Category::where('parent_id', $category->id)
->orWhere('id', $category->id)
->where('status', 1)
->whereIn('type', [Category::TYPE_ARTICLE, Category::TYPE_SHOW])
->pluck('id')
->toArray();
}
$articles = Article::where('status', 1)
->ByCategory($cate_ids)
->latest('sort')
->latest()
->paginate($take);
$parent = getTopCate($category->id);
if (in_array($category->id, [55, 54]) && $category->children->isEmpty()) {
$parent = $category->parent;
}
if ($category->children->isEmpty()) {
$parent = $category->parent;
}
return view($template, compact('category', 'parent', 'articles'));
}
}