generated from liutk/owl-admin-base
52 lines
1.4 KiB
PHP
52 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Api;
|
|
|
|
use Carbon\Carbon;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Http\Response;
|
|
use Illuminate\Support\Arr;
|
|
use App\Models\Article;
|
|
use App\Models\Keyword;
|
|
use App\Http\Resources\Api\ArticleResource;
|
|
use App\Http\Resources\Api\ArticleCategoryResource;
|
|
|
|
class ArticleController extends ApiController
|
|
{
|
|
public function recommend(Request $request)
|
|
{
|
|
$articles = Article::show()->where('is_recommend', 1)->sort()
|
|
->simplePaginate($request->query('per_page', 20));
|
|
|
|
return $this->success(['articles'=>ArticleResource::collection($articles)->resolve()]);
|
|
}
|
|
|
|
public function category(Request $request)
|
|
{
|
|
$categories = Keyword::allChildrenOfKey('article_category')->orderBy('sort', 'asc')->get();
|
|
|
|
return $this->success(['categories'=>ArticleCategoryResource::collection($categories)->resolve()]);
|
|
}
|
|
|
|
public function index(Request $request)
|
|
{
|
|
$categoryId = $request->input('category_key', 0);
|
|
$query = Article::query();
|
|
if($categoryId > 0){
|
|
$query->where('category', $categoryId);
|
|
}
|
|
|
|
$articles = $query->show()->sort()
|
|
->simplePaginate($request->query('per_page', 20));
|
|
|
|
return $this->success(['articles'=>ArticleResource::collection($articles)->resolve()]);
|
|
}
|
|
|
|
public function show(Article $article)
|
|
{
|
|
return ArticleResource::make($article);
|
|
}
|
|
|
|
|
|
|
|
} |