此代码查找院系并将其与表格中的教师进行比较。
如果在数据库中它找到了教师,那么它将这个组添加到数据库中,然后将其重定向到同一页面,但是在GET中(这是POST方法)。
问题是,如果没有添加该组,我需要重定向。也许,有人知道如何使这简单而整洁?
def addGroup() = Action.async {
implicit request =>
GroupForm.form.bindFromRequest.fold(
errorForm => ???,
data => {
(for {
seqOfFaculties <- FacultyService.getAllFaculties
future <- GroupService.addGroup(Group(0, data.nameGroup, data.faculty)) if seqOfFaculties.exists(_.name == data.faculty)
} yield future).map(_ => Redirect(routes.GroupController.get()))
})
}
答案 0 :(得分:0)
也许是这样的:
FacultyService.getAllFaculties.map { seqOfFaculties =>
if (seqOfFaculties.exists { _.name == "something" }) {
Ok // or something else...
} else {
Redirect(routes.GroupController.get())
}
}
在使用if
的for-comprehension中使用Future
语句时应该小心。你可以得到一个异常...... :)(没有处理它的东西)