use BamboleeDigital\TranslatableResourceKit\Http\Traits\TranslatesAttributes;
use Spatie\Translatable\HasTranslations;
class Product extends Model
{
use HasTranslations, TranslatesAttributes;
public $translatable = ['name', 'description'];
// ...
}
use BamboleeDigital\TranslatableResourceKit\Http\Resources\TranslatableResource;
class ProductResource extends TranslatableResource
{
// You can add custom logic here if needed
}
use BamboleeDigital\TranslatableResourceKit\Http\Resources\TranslatableCollection;
class ProductCollection extends TranslatableCollection
{
// You can add custom logic here if needed
}
public function index()
{
$products = Product::all();
return new ProductCollection($products);
}
public function show(Product $product)
{
return new ProductResource($product);
}
use Illuminate\Support\Facades\Route;
use BamboleeDigital\TranslatableResourceKit\Http\Middleware\SetLocale;
public function boot()
{
Route::aliasMiddleware('set_locale', SetLocale::class);
Route::pushMiddlewareToGroup('api', 'set_locale');
}
use BamboleeDigital\TranslatableResourceKit\Http\Middleware\SetLocale;
Route::middleware([SetLocale::class])->group(function () {
// Your API routes here
});