任何人都可以查看此代码并告诉我为什么我会收到变量ID未定义错误吗?
<cffunction name="login" access="public" returntype="void">
<cfargument name="rc" type="struct" required="true">
<cfset user = getUserService().login(arguments.rc.Username,arguments.rc.password)>
<cfif isDefined('User')>
<cfset session.auth = structNew()>
<cfset session.auth.isLoggedin = "yes"/>
<cfset session.auth.user = user />
<cfset session.auth.id = id>
<cfset session.auth.username = UserName />
<cfset session.auth.password = password />
<cfelse>
<cfset rc.message = createMessage('error','','entered password is wrong')>
<cfset variables.fw.redirect('login.default','message')>
</cfif>
<cfset variables.fw.redirect('')>
</cffunction>
答案 0 :(得分:5)
通过确定变量的范围,您将为自己(和其他未来的开发者)节省很多麻烦。
<cfset session.auth.id = User.id>
如果User是查询或结构,那么您也可以使用点符号
引用您的记录<cfset session.auth.id = User.id[1]>
答案 1 :(得分:3)
您需要正确调整变量的范围(正如我在评论中所述)。将= id
更改为= user.id
答案 2 :(得分:1)
我看不到你在哪里定义ID。如果在尝试访问它之前没有定义它,则会出现错误。
<cfset session.auth.id = id>