如何从视图助手访问ServiceImpl中的方法?

时间:2017-10-14 06:56:08

标签: scala playframework

我有一种方法可以根据用户检索博客帖子。我想在我的视图助手中使用它,但无法弄清楚如何。

BlogServiceImpl的代码是这样的:

class BlogServiceImpl @Inject() (blogDAO: BlogDAO, clock: Clock) extends BlogService {
  def retrieve(user: User): Future[Seq[Blog]] = blogDAO.find(user)
}

这是使用该方法的BlogController。

  def view: Action[AnyContent] = silhouette.SecuredAction.async { implicit request =>
    blogService.retrieve(request.identity).map { blogSeq =>
      Ok(views.html.blog.blog(request.identity, BlogForm.form, blogSeq))
    }

我希望我能编写如下代码。但由于它是一个对象而不是一个类,我不能注入BlogService,因此无法访问它。对于这样的问题,最好的解决方案是什么?

object Helpers {

  def postTitle(user: User) = {
   val post: Future[Option[Blog]] = blogService.retrieve(user).headOption
   Await.ready(post, Duration.Inf).value.get {
     case Success(Some(pst) => pst
     case Success(None) => None
   }

  some other helper methods...
}

0 个答案:

没有答案