@glebn
Золото, а не человек!

Как удалить объект модели перед сохранением в Laravel?

Добрый день!
Обновляю пост в БД, но предварительно отправляю его в удаленный API.
Для удаленного API в запросе нужно дополнительное поле post_slug (в локальной базе его нет).
в контроллере заполняю данные для модели Post:
$post->title = $request->title;
$post->content = $request->content;
$post->post_slug = urlencode(str_slug($request->post_slug));

Отправляю данные на API
$post->origin_id = Publisher::make($site)->save($post);

И сохраняю в БД
posts()->save($post);
И естественно получаю ошибку что Unknown column 'post_slug' in 'field list'.
Вопрос: Как сделать так чтобы $post->post_slug не отправлялось в сохранение БД?
  • Вопрос задан
  • 239 просмотров
Пригласить эксперта
Ответы на вопрос 2
chupacabramiamor
@chupacabramiamor
Инженегр-программист
Могу предложить еще один вариант.
Если в своем методе save вы просто дергаете значения свойств модели, которые затем и отправляете на API, то можно поступить следующим образом.
В классе модели Post объявить публичное свойство post_slug. И все! Больше никаких телодвижений
public $post_slug;
Ваша конструкция $post->post_slug = urlencode(str_slug($request->post_slug)); запишется не в атрибуты модели, а просто в свойство объекта post_slug, которое затем никак не повлияет на работу самой модели.
Ответ написан
Используйте метод except класса Request, например:
$request->except(['post_slug']);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы