我对玩还很陌生!2 框架,现在我无法再解决问题了。我有一个模型实体B,它具有一些属性,例如 id、name 和一个具有 @ManyToOne 关系的更复杂的属性A。A本身只有一些属性,如 id 和 name。
有点抽象但希望足够:
答:
@Entity
public class A extends Model {
@Id
public Long id,
@Required
public String name;
...
public static void create(Exam exam) {
exam.save();
}
}
乙:
@Entity
public class B extends Model {
@Id
public Long id,
@Required
public String name;
@Required
public A a;
...
public static void create(Exam exam) {
exam.save();
}
}
这两个模型的控制器非常简单,又是抽象的:
public class BCtrl extends Controller {
static Form<Exam> bForm = Form.form(B.class);
public static Result bs() {
return ok(views.html.b.render(B.all(), bForm));
}
public static Result newB() {
Form<Exam> filledForm = bForm.bindFromRequest();
List<Lecturer> lecturers = Lecturer.all();
if (filledForm.hasErrors()) {
return badRequest(views.html.b.render(Exam.all(), filledForm));
}
else {
B.create(filledForm.get());
return redirect(routes.BCtrl.bs());
}
}
}
我的问题来了。带有表单的 Scala HTML 文件创建一个新的B。再次抽象:
@(bs: List[B], bForm: Form[B])
@import helper._
@import helper.twitterBootstrap._
@main("B") {
<ul>
@for(b <- bs) {
<li>
@b.name
</li>
}
</ul>
@helper.form(action = routes.ExamCtrl.newExam()) {
@inputText(examForm("name"))
@inputText(examForm("a"))
<input type="submit" value="Create">
}
}
每次我尝试创建新的 BI 时都会收到验证错误。创建与A关联的实体B的正确方法是什么?