我加載關係模型(如書籍,作者,出版商,關鍵字),並以JSON形式將其發送到Web界面。用戶將在那裏編輯它,然後界面將以JSON的形式發回。問題是如何從JSON(與json()調用相反)創建模型,然後將其保存到數據庫。如果我可以將原始數據(再次從db重新加載)與從Web層接收的數據進行比較,這也會很有幫助。toJson()的反向 - 反序列化JSON到模型
2
A
回答
1
一旦它的服務器接收你可以解碼JSON:
$decoded = json_decode(Input::get('json'));
如果你想比較模型的一個選項是抓住從解碼JSON(模型的ID請務必仔細檢查用戶可以訪問它,以防他們試圖欺騙你的數據),循環你的解碼數據的鍵值,並將它們相互匹配。
$model = YourModel::find($decoded->id); // dont forget to ensure they have access to this model
// Set up an empty array to store anything that's changed
$changes = array();
// Loop over your decoded values
foreach($decoded as $key => $value) {
// If the value in your model doesn't match the decoded value, add to the changes array
if($model->{$key} != $value) {
$changes[$key] = $value;
}
}
-1
您可以通過使用collect(json_decode($json))
其轉換爲collection
。
+0
我需要將它轉換爲模型,並帶有關係,我可以保存。收藏會有幫助嗎? – Andris
+0
'''collect(json_decode($ json)) –
相關問題
- 1. 反序列化JSON反對
- 2. 反序列化JSON到
- 3. 反序列化JSON
- 4. JSON反序列化
- 5. 反序列化JSON
- 6. 反序列化JSON
- 7. JSON反序列化
- 8. 問題反序列化JSON回到原始模型
- 9. JSON反序列化的iOS
- 10. 反序列化JSON遞歸類型
- 11. 反序列化JSON - 錯誤類型
- 12. Json反序列化流返回類型
- 13. 反序列化Json到對象列表
- 14. Json反序列化到列表
- 15. C#反序列化JSON到列表
- 16. c#反序列化JSON到列表
- 17. 建設者模式json反序列化
- 18. 如何反序列化JSON反對
- 19. 的Json反序列化到URL(攔截)
- 20. 的Json反序列化到詞典.NET
- 21. 反序列化,JSON,WP7
- 22. JSON反序列化錯誤
- 23. 反序列化JSON C#Json.net
- 24. domaintools json反序列化?
- 25. JSON對象反序列化
- 26. 反序列化JSON改變
- 27. firebase json反序列化swift
- 28. 反序列化JSON結構
- 29. 反序列化JSON對象
- 30. Json .Net反序列化
謝謝,這會有所幫助,但只有一個平面模型我猜。我的模型有關係,據我瞭解,如果我在加載服務器端後進行更改,我可以在其上執行 - > save()。現在,這就是我想要通過電線接收的模型(以及它的關係)。所以關鍵問題在於,我如何從JSON創建模型(與關係)。 – Andris
通過執行YourModel :: find($ model_id)) - > with('relationship') - > toJson(),您可以通過關係傳遞模型。如果您想在任何時候檢查父模型和子模型的更改,只需檢查已解碼的JSON對象的格式,並使用與答案中類似的鍵/值檢查循環其關係。 –
在這種情況下,我可能會創建一個上面的邏輯的檢查方法,返回一個給定兩個對象或數組的變化值的數組,並將它重用於父模型和任何其他相關模型的屬性。 –