parsaaghayi-backend/app/Http/Controllers/Website/ServiceController.php

51 lines
1.6 KiB
PHP

<?php
namespace App\Http\Controllers\Website;
use App\Http\Controllers\Controller;
use App\Models\Website\Service;
class ServiceController extends Controller
{
/**
* دریافت لیست خدمات با ترجمه‌ها بر اساس زبان
*/
public function index($locale)
{
// گرفتن همه خدمات به همراه ترجمه‌ها
$services = Service::with(['translations' => function ($query) use ($locale) {
$query->where('locale', $locale);
}])->get();
// فرمتی که می‌خواهیم به کاربر ارسال کنیم
$response = $services->map(function ($service) use ($locale) {
return [
'id' => $service->id,
'imageSrc' => $service->imageSrc,
'altText' => $service->translations->first()->altText ?? '',
'created_at' => $service->created_at,
'updated_at' => $service->updated_at,
'title' => optional($service->translations->first())->title,
'description' => optional($service->translations->first())->description,
];
});
return response()->json($response);
}
/**
* نمایش یک خدمت خاص با ترجمه
*/
public function showTranslation($id, $locale)
{
$service = Service::with('translations')->findOrFail($id);
return response()->json([
'id' => $service->id,
'imageSrc' => $service->imageSrc,
'title' => $service->getTitle($locale),
'description' => $service->getDescription($locale),
]);
}
}