Skip to main content

libeyondea/backend-forum-example

21 stars
3 code files
View libeyondea/backend-forum-example on GitHub

routes/api.php

Open in GitHub
use App\Http\Controllers\Api\CategoryController;
 
Route::group(['middleware' => 'cors'], function(){
//
Route::get('categories', [CategoryController::class, 'listCategory']);
//
});

app/Http/Controllers/Api/CategoryController.php

Open in GitHub
use Illuminate\Http\Request;
use App\Models\Category;
use App\Transformers\ListCategory\CategoryTransformers as ListCategoryTransformers;
 
class CategoryController extends ApiController
{
public function listCategory(Request $request, $limit = 20, $offset = 0)
{
$limit = $request->get('limit', $limit);
$offset = $request->get('offset', $offset);
$category = Category::orderBy('id', 'asc');
$categoriesCount = $category->get()->count();
$listCategory = fractal($category->skip($offset)->take($limit)->get(), new ListCategoryTransformers);
return $this->respondSuccessWithPagination($listCategory, $categoriesCount);
}
//
}

app/Transformers/ListCategory/CategoryTransformers.php

Open in GitHub
use League\Fractal\TransformerAbstract;
use App\Models\Category;
 
class CategoryTransformers extends TransformerAbstract
{
public function transform(Category $category)
{
return [
'id' => $category->id,
'title' => $category->title,
'slug' => $category->slug,
'created_at' => $category->created_at,
'updated_at' => $category->updated_at,
'total_posts' =>$category->post->count()
];
}
}

We'd Love Your Feedback

Tell us what you like or what we can improve

Feel free to share anything you like or dislike about this page or the platform in general.