2014-07-16 117 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兼容的。 –