2

ManyToMany 関係を含むモデルがあります。

@JoinTable(name = "Contract_has_Institution", joinColumns = { @JoinColumn(name = "contract_id", referencedColumnName = "id") }, inverseJoinColumns = { @JoinColumn(name = "institution_id", referencedColumnName = "id") })
@ManyToMany
public List<Institution> institutionCollection;

scala.html には、リストに 2 つの要素 (2 つの機関) を追加するための 2 つの選択があります。

    @select(contractForm("institutionCollection"),
         options = options(InstitutionController.options),
         '_default -> "--- Choose an institution ---",
         '_label -> "Institution A",
         '_showConstraints -> false)

    @select(contractForm("institutionCollection"),
         options = options(InstitutionController.options),
         '_default -> "--- Choose an institution ---",
         '_label -> "Institution B",
         '_showConstraints -> false)

このようなフィールドに [] を追加してみました

 contractForm("institutionCollection[]"),

しかし、うまくいきません。選択した 2 つの選択肢をリストにバインドするにはどうすればよいですか?

4

1 に答える 1

2

ビューで、現在のコードを使用する場合:

 @select(contractForm("institutionCollection"),
     options = options(InstitutionController.options),
     '_default -> "--- Choose an institution ---",
     '_label -> "Institution A",
     '_showConstraints -> false)

@select(contractForm("institutionCollection"),
     options = options(InstitutionController.options),
     '_default -> "--- Choose an institution ---",
     '_label -> "Institution B",
     '_showConstraints -> false)

したがって、次のコードを使用して複数選択の値を取得できます (これは単なる例です)。

public static Result someAction() {
    Map<String,String[]> formData = request().body().asFormUrlEncoded();

    Institution institution;
    // get all institutionCollection select value
    for (String insId : formData.get("institutionCollection")) {
        Logger.debug("INSTITUTION SELECTED = " + insId); // log info

        // I assume that select value is the ID of each Institution record
        institution = Institution.find.byId(Long.parseLong(insId))
        SomeModel.institutionCollection.add(institution) // add to the list to your model
    }
    SomeModel.save(); // save changes
    return ok("success");
}
于 2013-05-07T02:33:40.217 に答える