You've already forked Atomcms-edit
40 lines
1.1 KiB
PHP
40 lines
1.1 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Http\Controllers\Api;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Http\Resources\Api\ArticleResource;
|
|
use App\Models\Articles\WebsiteArticle;
|
|
use Illuminate\Http\JsonResponse;
|
|
|
|
class ArticleApiController extends Controller
|
|
{
|
|
public function index(): JsonResponse
|
|
{
|
|
$articles = WebsiteArticle::with(['user:id,username,look'])
|
|
->latest('id')
|
|
->paginate(12);
|
|
|
|
return response()->json([
|
|
'data' => ArticleResource::collection($articles),
|
|
'meta' => [
|
|
'current_page' => $articles->currentPage(),
|
|
'last_page' => $articles->lastPage(),
|
|
'per_page' => $articles->perPage(),
|
|
'total' => $articles->total(),
|
|
],
|
|
]);
|
|
}
|
|
|
|
public function show(string $slug): JsonResponse
|
|
{
|
|
$article = WebsiteArticle::with(['user:id,username,look', 'comments.user:id,username,look'])
|
|
->where('slug', $slug)
|
|
->firstOrFail();
|
|
|
|
return response()->json(['data' => new ArticleResource($article)]);
|
|
}
|
|
}
|