我加载关系模型(如书籍,作者,出版商,关键字),并以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对象的格式,并使用与答案中类似的键/值检查循环其关系。 –
在这种情况下,我可能会创建一个上面的逻辑的检查方法,返回一个给定两个对象或数组的变化值的数组,并将它重用于父模型和任何其他相关模型的属性。 –