0

如何根据用户是否已经喜欢它来设置状态的喜欢和不喜欢?我是否需要使用标准或动态查找器或 gsp 中的每个循环来找出相似和不同?

我的应用程序模型如下所示:

Status域有很多likes
like属于userstatus
user有很多statuslikes

 <g:each in="${statusInstanceList}" status="i" var="statusInstance">
 ${fieldValue(bean: statusInstance, field: "statusMessage")}

 <g:each var="likeInstance" in="${statusInstance.like}">
  <g:set var="likesSize" value="${statusInstance.like?.size()}"/>
   $likesSize
 </g:each>

 </g:each>

$likesSize输出状态的点赞数。(感谢@dmahapatro)

我需要找出会话用户是否已经喜欢该状态并在其基础上显示喜欢/不喜欢。

更新:现在如果我在下面使用 if 语句,我会得到不同和喜欢,我如何限制它只显示不同或喜欢?

<g:each in="${statusInstance.like?.userAccountId}" status="p" var="userlike">
                      <g:if test="${userlike == session.selectedUser?.id || statusInstance.like?.statusId == statusInstance.id}">
                        Unlike
                      </g:if>
                      Like
                      </g:each>
4

2 回答 2

1

我只是抛出一个想法:

user.like会给你所有喜欢的用户。
status.like会给你所有喜欢的状态。

难道你就不能查出一个用户的点赞是不是也是状态点赞?

您需要找出Like同时属于User和的 a Status

于 2013-06-26T14:10:40.860 回答
0

看起来您可以为此使用简单的动态查找器。

Like.findByUserAndStatus(user, status)

如果这返回结果,则用户喜欢该状态。

于 2013-06-26T20:29:19.217 回答