如何设置喜欢和不同的状态取决于用户是否已经喜欢它?我是否需要使用标准或动态查找器或gsp中的每个循环来找出喜欢和不同?
我的应用程序的模型如下所示:
Status
域名有很多likes
like
属于user
和status
user
有许多status
和likes
<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>
答案 0 :(得分:1)
我只是想出一个主意:
user.like
会给你所有用户的喜欢
status.like
会给你所有状态的喜欢。
您是否无法确定用户的状态是否也是“状态”?
您需要找到属于Like
和User
的{{1}}。
答案 1 :(得分:0)
看起来您可以使用简单的动态查找器。
Like.findByUserAndStatus(user, status)
如果这返回结果,则用户已经喜欢该状态。