2014-07-16 67 views
0

我的问题是关于如何将模型集合存储到RESTful后端。
我使用Backbone.js的,和我正在考虑要么:Laravel4存储集合

  1. 使用Async.js并行算法和后/分别把每个模型在一个循环中,在这之后,一般回调方法被触发;
  2. 将对象集合发送到后端,并使用数据库事务来确保所有模型都通过一次提交正确保存;

第一种方法似乎会导致大量开销,因为我必须进行不同的调用才能保存模型。

但是当考虑第二种方法时,Laravel4默认情况下不允许执行邮寄/放置收藏。

你最喜欢的方法是什么?更重要的是,为什么?

回答

0

第二种方法绝对是我认为的方法,它可以减少延迟并节省带宽,因为如果将它与大量模型一起使用,因为所有HTTP(标题等)将只发送一次。

在您的控制器,使用这样的(它可能无法正常工作,我没有访问任何Laravel安装到测试):

public function postCollection() { 
    $collection = Input::get("collection"); 

    DB::transaction(function() { 
     foreach ($collection as $data) { 
      // In this example we assume it's a collection of users 
      // Of course in a real app you would also do input validation 
      $user = User::create(["name" => $data->name, "email" => $data->email]); 
     } 
    }) 

    // Example success response, will be automatically serialized to JSON 
    return ["status" => "success"]; 
} 

这个循环在你的JSON输入collection元素,这应该是一个模型列表。那么它显然应该做验证和其他可能的东西。整个循环被包装到一个DB::transaction()中,如果内部发生异常,它将回滚所有内容。

+0

我脑子里有同样的想法。尽管如此,我不确定REST的架构风格概念是否受到尊重。无论如何,我接受这个答案,谢谢你的帮助! – Trace

+0

@KimGysen通过使用PUT请求我认为它是REST兼容的。 –