2015-03-13 60 views
0

在Laravel 4(产品信息管理)上构建API。 获得翻译产品与他们之间的雄辩关系。一个产品有很多翻译。最佳实践:保存在控制器或创建:请求

当我呼吁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中翻译成功时才能使用产品

哪一个是最佳做法?

+0

没有人对此有任何评论?问候 – user3384179 2015-03-15 16:38:14

回答

0

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

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

+0

伟大的!交易是我需要的:-),所以我的第一个问题不再有用,我必须实现laravel的非API请求保存方法? – user3384179 2015-03-20 06:02:17