システムと呼ばれるテーブルがあり、主に数値/文字型の列がいくつかありますが、ドキュメントを保持するためのバイナリ型が 1 つあります (Word や Excel など)。
ファイルをインラインまたは外部、つまりbfileまたはblobに保持する必要がある場合は、今のところ無視してください...問題は、playフレームワークでそれを処理する方法についてです
モデルビューとコントローラーで動作するフォームを取得しました...しかし、動作させるためだけにファイルフィールドなしで設定しました:
モデルにケースクラスがあります
case class System(sys_id: Pk[Long] = NotAssigned
, sys_name: String
, sys_desc: String
, sys_owner1: Long
, sys_owner2: Long)
コントローラーのフォーム
val systemForm = Form(
mapping(
"sys_id" -> ignored(NotAssigned:Pk[Long]),
"sys_name" -> nonEmptyText,
"sys_desc" -> nonEmptyText,
"sys_owner1" -> longNumber,
"sys_owner2" -> longNumber
)(System.apply)(System.unapply)
)
およびビュー内のフォーム
@form(routes.Systems.save(), 'class -> "form-horizontal") {
@inputText(systemForm("sys_name"), '_label -> "System Name")
@inputText(systemForm("sys_desc"), '_label -> "Description")
@select(
systemForm("sys_owner1"),
persons,
'_label -> "Primary Owner", '_default -> "-- Choose a person --",
'_showConstraints -> false
)
@select(
systemForm("sys_owner2"),
persons,
'_label -> "Secondary Owner", '_default -> "-- Choose a person --",
'_showConstraints -> false
)
<div class="control-group">
<div class="controls">
<input type="submit" value="Create System" class="btn btn-success"> or
<a href="@routes.Systems.list()" class="btn">Cancel</a>
</div>
</div>
}
これはすべてうまくいきます...しかし、ファイルを追加したいのですが、どうすればよいですか? 私はこれを見ましたhttp://www.playframework.com/documentation/2.1.2/ScalaFileUpload しかし、ケースクラスを変更する必要があるかどうか、またはどのように変更する必要があるかについては言及されていないので混乱します-そして、ファイルが保存されている変数は何ですか(ifそれは)コードでアクセスできるようにするためですか?
ケースクラスを変更する必要がありますか (そうであれば、どのタイプを追加する必要がありますか)? コントローラーでフォームを変更する必要があります (その場合、どのタイプを追加する必要がありますか?)
インラインで保存するかbfileとして保存するかは気にしませんが、上記のようにどのように処理できますか?
ありがとうございました