4️⃣ BlogAIContentWriter TEKRAR EKLER (Satır 114-125)
// MediaItem'dan media'yı al
$media = $mediaItem->getFirstMedia('library'); // İlk media record// AYNI GÖRSELİ Blog'a TEKRAR ekle$blog->addMedia($media->getPath())// ❌ DUPLICATE!
->preservingOriginal()
->toMediaCollection('featured');// ❌ İKİNCİ MEDIA!
✅ ÇÖZÜM YOLLARI
ÇÖZÜM 1: MediaLibraryItem Kullan (ÖNERİLEN)
Blog'a tekrar addMedia() yapmak yerine, direkt MediaLibraryItem'ı kullan!
// Satır 88-103: Görsel üret (aynı kalsın)
$mediaItem = $imageService->generate($imagePrompt, [
'size' => '1792x1024',
'quality' => 'hd'
]);
// Satır 104: Media'yı al
$media = $mediaItem->getFirstMedia('library');
// Satır 106-113: SEO meta ekle (MediaLibraryItem'a)
if ($media) {
$media->setCustomProperty('alt_text', ['tr' => $blogTitle]);
$media->setCustomProperty('title', ['tr' => $blogTitle . ' - Ana Görsel']);
$media->setCustomProperty('description', ['tr' => $blogData['excerpt']]);
$media->setCustomProperty('width', 1792);
$media->setCustomProperty('height', 1024);
$media->setCustomProperty('seo_optimized', true);
$media->save();
// ✅ ÇÖZÜM: Blog ile MediaLibraryItem'ı ilişkilendir// Yeni media record oluşturma, sadece relation ekle!$blog->media_library_id = $mediaItem->id; // Foreign key$blog->save();// VEYA polymorphic relation kullan:// $blog->mediaLibraryItems()->attach($mediaItem->id);
}
ÇÖZÜM 2: addMedia() Kaldır
Blog'a addMedia() yapma, sadece MediaLibraryItem'ı referans et!
// ❌ BUNU KALDIR:$blog->addMedia($media->getPath()) ->preservingOriginal() ->toMediaCollection('featured');// ✅ BUNU EKLE:$blog->featured_image_id = $mediaItem->id;// Foreign key$blog->save();