has('category')) { $category = $request->input('category'); // فیلتر کردن پروژه‌ها بر اساس category با استفاده از LIKE $projects = $projects->where('category', 'like', '%' . $category . '%'); } // 2. انتخاب نوع مرتب‌سازی (جدیدترین یا قدیمی‌ترین) $sortOrder = $request->input('sort', 'desc'); // 'desc' برای جدیدترین و 'asc' برای قدیمی‌ترین $projects = $projects->orderBy('created_at', $sortOrder); // 3. پیاده‌سازی pagination $perPage = $request->input('per_page', 10); // تعداد پروژه‌ها در هر صفحه $paginatedProjects = $projects->paginate($perPage); // 4. دریافت تمام categories موجود از ستون category $categories = Project::distinct()->pluck('category'); // گرفتن دسته‌بندی‌های یکتا return response()->json([ 'projects' => $paginatedProjects, 'categories' => $categories, ]); } public function create() { // برگرداندن ویو فرم ایجاد پروژه (اگر نیاز است) } public function store(Request $request) { $project = Project::create($request->all()); return response()->json($project, 201); } public function show($id) { $project = Project::findOrFail($id); return response()->json($project); } public function edit($id) { // برگرداندن ویو فرم ویرایش پروژه (اگر نیاز است) } public function update(Request $request, $id) { $project = Project::findOrFail($id); $project->update($request->all()); return response()->json($project); } public function destroy($id) { Project::destroy($id); return response()->json(null, 204); } }