guessing-miniprogram/app/Http/Controllers/Api/ArticleController.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);
}
}