最佳实践:保存在控制器中或创建:请求

时间:2015-03-13 07:57:03

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

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

第二个问题:

如果转换未能存储,产品存储在DB(第一个保存请求)中,是否可以避免这种情况,如果DB中的转换正常,则仅存储产品?

哪一个是最佳做法?

1 个答案:

答案 0 :(得分:0)

您应该考虑使用Laravel documentation中的交易。

另外,你盲目地使用Input::all()这不是一个好主意。您应该使用Input::only(['one', 'two', 'three'])

仅指定所需的输入