リレーションを持つモデル(ブック、著者、パブリッシャー、キーワードなど)を読み込み、JSONのWebインターフェイスに送信します。ユーザーはそこでそれを編集し、インターフェースはそれをJSONとして戻します。問題は、JSON(toJson()呼び出しの逆)からモデルを作成し、それをデータベースに保存する方法です。元のデータ(データベースから再読み込みされたデータ)を、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. enumタイプのJSON逆シリアル化
- 8. ジャンクションのカスタムJSON逆シリアル化
- 9. 逆シリアル化JSONのジャクソン
- 10. 逆シリアル化の逆シリアル化
- 11. 逆シリアル化JSONリテラル
- 12. 逆シリアル化JSONオブジェクト
- 13. 自己への逆シリアル化
- 14. FlutterのオブジェクトへのJSONのシリアライゼーションと逆シリアル化
- 15. オブジェクトのArryaへのJSON応答を逆シリアル化できない
- 16. JSONからJavaオブジェクトへのエスケープされたプロパティの逆シリアル化
- 17. Newsoft JSON .NET VB.netのプライベートプロパティを持つオブジェクトへの逆シリアル化
- 18. JSONへの倹約とその逆
- 19. 逆シリアル化JSON配列は
- 20. Kotlin JS JSON逆シリアル化
- 21. Javascript JSON日付逆シリアル化
- 22. ジャクソンJSON逆シリアル化リスト
- 23. カスタム動的JSON逆シリアル化
- 24. JSON逆シリアル化オブジェクトHTTPWebResponse
- 25. ASPNET LocalStorage Json逆シリアル化
- 26. JSONを逆シリアル化する
- 27. 逆シリアル化JSON配列は
- 28. 逆シリアル化JSON配列Newtonsoft.Json
- 29. 配列のJSON配列の逆シリアル化
- 30. GSON-JSONクラス内のオブジェクトの逆シリアル化
おかげで、これはだけ、私は推測するフラットなモデルと、役立ちます。私のモデルはリレーションを持っており、読み込んだ後にサーバー側を変更するとわかっているので、その上で - > save()を実行できます。これが、私がワイヤで受け取ったモデル(とそれの関係)を使ってやりたいことです。ここで重要なのは、JSONから(リレーションを使用して)モデルを作成する方法です。 – Andris
YourModel :: find($ model_id) - > with( 'relationship') - > toJson()を実行すると、リレーションシップを使用してモデルをパススルーすることができます。親と子のモデルの変更をいつでもチェックしたいのであれば、デコードされたJSONオブジェクトの形式をチェックして、回答と同様のキー/値チェックでその関係をループするだけです。 –
その場合、おそらく2つのオブジェクトまたは配列を与えられた変更された値の配列を返し、親モデルと他の関連するモデルのプロパティに対して再利用する上記のロジックを持つチェックメソッドを作成します。 –