49 lines
1.3 KiB
PHP
49 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Api;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use Illuminate\Http\Request;
|
|
use App\Models\{Article, ArticleCategory};
|
|
use App\Http\Resources\{ArticleResource, ArticleCategoryResource};
|
|
|
|
class ArticleController extends Controller
|
|
{
|
|
public function category(Request $request)
|
|
{
|
|
$query = ArticleCategory::filter($request->all())->enable()->sort();
|
|
|
|
$list = $query->get();
|
|
|
|
return $this->json(ArticleCategoryResource::collection($list));
|
|
}
|
|
|
|
public function tree(Request $request)
|
|
{
|
|
$pid = $request->input('parent_id');
|
|
$list = ArticleCategory::filter(['parent_path' => $pid])->enable()->sort()->select(['id', 'name', 'icon', 'parent_id'])->get()->toArray();
|
|
|
|
return $this->json(array2tree($list, $pid ?? 0));
|
|
}
|
|
|
|
public function index(Request $request)
|
|
{
|
|
$query = Article::filter($request->all())->enable()->sort();
|
|
|
|
$list = $query->paginate($request->input('per_page'));
|
|
|
|
return $this->json(ArticleResource::collection($list));
|
|
}
|
|
|
|
public function show($id)
|
|
{
|
|
$info = Article::enable()->find($id);
|
|
|
|
if (!$info) {
|
|
return $this->error('记录不存在');
|
|
}
|
|
|
|
return $this->json(ArticleResource::make($info));
|
|
}
|
|
}
|