@romicohen
Системный Архитектор

Какова best practice для преобразования входящего JSON при создании/обновлении модели через API, где это принято делать?

Суть вопроса:

При создании модели мы получаем на /api/create JSON в котором 100500 переменных, которые затем надо как-то привязать к модели, дополнить другими данными, и сохранить.

Получается такая примерно простыня

$user->name = $input['name'];
$user->address = $input['address'];
...
$user->babushka = $input['babushka'];

$user->save();


то же самое и на /api/update

В общем, получается контроллер состоящий из нескольких жирнейших методов.

В принципе, все работает, но хочется узнать какова Best practice по сборке таких объектов.

Где это общепринято делать - оставить в контроллере? Убрать в модель? Создать какой-то особый класс?

Заранее спасибо.
  • Вопрос задан
  • 117 просмотров
Решения вопроса 3
@jazzus
$user->update($request->validated())
для создания аналогично с create
Ответ написан
@inFureal
Выдели отдельный сервис или экшн для манипуляций с моделью. Например
class UserHandler {
    static function handle($user, $data) {} 
}


Или же если комбинировать примеры, которые дали выше и добавить обсервер на события внутри модели
class UserObserver {
    function saving(User $user) {}
}

// И в AppServiceProvider
User::observe(UserObserver::class);
Ответ написан
@romicohen Автор вопроса
Системный Архитектор
В конечном итоге просто создал сервисный класс и перетащил всё туда. Ну, хз "правильно" это или нет, но сейчас это так ))
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы