А чтобы не делать (или не забывать сделать)
$post->tags()->detach();
$post->category()->dissociate();
в таблице должно быть onDelete cascade для пивот таблиц
Vitsliputsli, надо не изменять исходные данные а подготавливать новые. и $data вообще не должен быть массивом а обьектом реквеста, сейчас data абсолютно не контролируемый массив
Вячеслав Кот, за последние 6 лет не сильно то что изменились в вебе, а внедрение вредоносного кода в сайты тем более. Насколько я знаю он перестал быть открытым после появления в ISPmanager так что скорее всего это лучшее решение доступное в интернете вообще.
А если тебе нужен полноценный сервис - сделай его!
ws256, это условие есть даже в тесте от гугла. С 99% уверенностью это влияет на поиск. Мир не стоит на месте сейчас это современные форматы изображений.
Немного не по теме но:
1) id вообще не надо тут
2) Вместо 3х полей должно быть полиморфная связь
3) Вместо текстовых названий должен быть id это сильно сэкономит размер бд
Примерно так должны выглядеть база:
relation_id | relation_type | code | user_id
$post->tags()->detach();
$post->category()->dissociate();
в таблице должно быть onDelete cascade для пивот таблиц