【问题标题】:Best practice: save in controller or create:request最佳实践:保存在控制器中或创建:请求
【发布时间】:2015-03-18 16:39:32
【问题描述】:

我正在 Laravel 4 上构建一个 API(产品信息管理)。 得到带有翻译的产品,它们之间有 Eloquent 关系。一个产品有很多翻译。

当我在 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());

第二个问题:

如果翻译存储失败,产品存储在数据库中(第一次保存请求),是否有可能避免这种情况,如果翻译正常,只存储产品在数据库中?

哪一个是最佳实践?

【问题讨论】:

  • 没有人知道这个?问候

标签: php laravel laravel-4 eloquent entity-relationship


【解决方案1】:

您应该考虑在Laravel documentation 中使用事务。

另外,您正在盲目地使用Input::all(),这不是一个好主意。您应该使用 Input::only(['one', 'two', 'three']) 仅指定您需要的输入

【讨论】:

  • 太棒了!!事务是我需要的:-),所以我的第一个问题不再有用,我必须实现 laravel 的保存方法而不是 API 请求?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-02
  • 1970-01-01
  • 1970-01-01
  • 2018-09-24
  • 1970-01-01
  • 2021-05-07
相关资源
最近更新 更多