我正在Laravel 4(产品信息管理)上构建一个API。获得了翻译的产品,它们之间的关系很好。一个产品的hasMany翻译。
当我在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());第二个问题:
如果翻译存储失败,产品被存储在数据库中(第一次保存请求),有没有可能避免这种情况,如果翻译没有问题,只在数据库中存储产品?
哪一个是最佳实践?
发布于 2015-03-18 16:34:51
您应该考虑在Laravel documentation中使用事务。
此外,您盲目地使用Input::all(),这不是一个好主意。您应该使用Input::only(['one', 'two', 'three'])仅指定所需的输入
https://stackoverflow.com/questions/29027300
复制相似问题