第二種方法絕對是我認爲的方法,它可以減少延遲並節省帶寬,因爲如果將它與大量模型一起使用,因爲所有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()
中,如果內部發生異常,它將回滾所有內容。
我腦子裏有同樣的想法。儘管如此,我不確定REST的架構風格概念是否受到尊重。無論如何,我接受這個答案,謝謝你的幫助! – Trace
@KimGysen通過使用PUT請求我認爲它是REST兼容的。 –