Лучшая практика: сохранить в контроллере или создать: запрос

Я создаю API на Laravel 4 (управление информацией о продукте).
Получил продукты с переводами с красноречивыми отношениями между ними. Продукт имеет много переводов.

Когда я звоню в магазин по API, я сохраняю новый продукт, но также и новый перевод (продукт без перевода по умолчанию бесполезен)
Чтобы достичь этого двумя способами:

$product = new Product(Input::all()))->save();
$product->translations()->save(Input::all());

Прекрасно работает, получил новый продукт с переводом по умолчанию.

Еще один способ думать об этом:

$product = new Product(Input::all()))->save();
$request = Request::create(
'/product/'.$product->id ./translations, 'POST',Input::all());

Второй вопрос:

Если перевод не удалось сохранить, продукт сохраняется в БД (первый запрос на сохранение), возможно ли этого избежать, хранить только продукт, если перевод в БД в порядке?

Какой из них лучший?

0

Решение

Вы должны изучить использование транзакций в Документация Laravel.

Кроме того, вы используете Input::all() вслепую, что не очень хорошая идея. Вы должны указать только те данные, которые вам нужны, используя Input::only(['one', 'two', 'three'])

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]