Laravel 5.1 LTSでフォームカスタマイズシステムを構築します。ユーザーはフォームを作成し、そのフィールドとスタイルをカスタマイズし、それらを解放し、他のユーザーがフォームを記入することができます。jsonデータをmysqlに保存するには?
フロントエンド側では、Alpaca Formsを使用します。このパッケージでは、フィールドとデータはjsonでレンダリングされます。
ここで問題は、フィールドのjsonとdatas 'jsonをmysqlに格納する方法です(mongodbや他のnosqlデータベースを使用したくないので、私はすでにmysqlを使用しています。 JSONはこのようなものであるのNoSQLに対処する方法を知っている) :。
$("#form").alpaca({
"data": {
"name": "Diego Maradona",
"feedback": "Very impressive.",
"ranking": "excellent"
},
"schema": {
"title":"User Feedback",
"description":"What do you think about Alpaca?",
"type":"object",
"properties": {
"name": {
"type":"string",
"title":"Name",
"required":true
},
"feedback": {
"type":"string",
"title":"Feedback"
},
"ranking": {
"type":"string",
"title":"Ranking",
"enum":['excellent','ok','so so'],
"required":true
}
}
},
"options": {
"form":{
"attributes":{
"action":"http://httpbin.org/post",
"method":"post"
},
"buttons":{
"submit":{}
}
},
"helper": "Tell us what you think about Alpaca!",
"fields": {
"name": {
"size": 20,
"helper": "Please enter your name."
},
"feedback" : {
"type": "textarea",
"name": "your_feedback",
"rows": 5,
"cols": 40,
"helper": "Please enter your feedback."
},
"ranking": {
"type": "select",
"helper": "Select your ranking.",
"optionLabels": ["Awesome!",
"It's Ok",
"Hmm..."]
}
}
},
"view" : "bootstrap-edit"
});
Iは、フロントエンドJSONと今まで件のデータを保存するための一つの解決策を保存するための2つの解決策が出ているが、私は考えていません彼らは十分なので、私はここでより良いものを見つけるために援助を求めています。
保存フロントエンドJSON:
リストフロントエンドJSONのすべての属性は、それとテーブルを作成し、すべての値を保存します。パッケージが変更されたら、私はテーブルを更新する必要があります。 フォームフィールドテーブルは次のようになります。
| id | form_id |タイプ|名前|行| ... |
jsonをkey-value配列に解決し、データベースに保存します。ユーザーがフォームを作成すると、テーブルに多くの行が挿入されることは好ましくありません。 フォームフィールドテーブルは次のようになります。
| id | form_id |キー|値|
save jsonを属性として保存します。私はMysql 5.7がjsonをサポートできると知っていますが、これに他の問題があるかどうかはわかりません.Laravel 5.1はjson検索をサポートしていません。 フォームテーブルは次のようになります。
| id | json |
保存件のデータをJSON:
解決JSONのキーと値の配列にしてデータベースに保存します。ユーザーがフォームを塗りつぶすと、テーブルに多くの行が挿入されることは好ましくありません。 データテーブルは次のようになります。
| id | form_id |キー|値|デ・データベース内
感謝〜
[列が不明な場合にSQLデータベースにデータを格納する正しい方法]の複製が可能です。(http://stackoverflow.com/questions/37109711/correct-way-to-store-data-in-sql-database-when -columns-are-unknown) – e4c5
@ e4c5はい、複製されています...しかし、私はLaravel 5.1 LTSを使用しています...そして属性としてjsonに問題があるかどうかはわかりません。 – GoneWithSin
@ e4c5その質問の答えは私が欲しいものではありません...私は以下に挙げた解決策をいくつか持っていますが、十分に良いとは思いません。私はより良い解決策を求めています。または最適化...単に解決策ではない...状況が違う、私はlarvel 5.1を使っていません。Django ... Laravel 5.1はjson検索をサポートしていません。 – GoneWithSin