Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala Lift中MegaProtoUser的替代方案_Scala_Lift - Fatal编程技术网

Scala Lift中MegaProtoUser的替代方案

Scala Lift中MegaProtoUser的替代方案,scala,lift,Scala,Lift,在Lift中,整个ProtoUser构造非常棒,它为您带来了惊人的效果,大多数优势(不幸的是,与Lift中的许多东西一样)都没有记录在案 只有一个问题:它保存着我不需要的数据,甚至是我不想要的数据。例如,我希望我的用户以昵称登录,而不需要知道他的位置、区域设置或名/姓。但在注册时,我需要标准注册页面上未显示的信息 我的第一个想法是重新编写我自己的用户特征,但随后我必须重新编写所有会话代码、授权等。是否已经有替代方案?或者可以改变原型用户来拥有我自己的注册和登录页面,以及我所需的数据吗 谢谢收听。

在Lift中,整个
ProtoUser
构造非常棒,它为您带来了惊人的效果,大多数优势(不幸的是,与Lift中的许多东西一样)都没有记录在案

只有一个问题:它保存着我不需要的数据,甚至是我不想要的数据。例如,我希望我的用户以昵称登录,而不需要知道他的位置、区域设置或名/姓。但在注册时,我需要标准注册页面上未显示的信息

我的第一个想法是重新编写我自己的用户特征,但随后我必须重新编写所有会话代码、授权等。是否已经有替代方案?或者可以改变
原型用户
来拥有我自己的注册和登录页面,以及我所需的数据吗


谢谢收听。

我不确定是否有任何简单的方法可以删除ProtoUser中的任何字段,但一个选择是查看ProtoUser中的fieldOrder方法,我相信它定义了ProtoUser使用的字段。关于注册问题,有一个方法signUpFields,它允许您覆盖注册时所需的字段


覆盖def signupFields=email::userName::password::Nil


假设您定义了自己的用户名对象。对于editFields也有类似的方法,这实际上并不能解决删除它跟踪的字段的问题,但fieldOrder可能会做些什么,我的另一个建议是查看Proto User的源代码,看看是否可以覆盖映射对象,并使映射器以某种方式忽略它们。这仍然只是解决Proto User问题的一种方法,以避免重写它包含的大量代码。

查看最近关于liftweb组的讨论,这似乎对注册很有效,但在编辑用户时,我得到的标准字段与以前完全相同。而且日志记录只适用于电子邮件…是的,编辑用户页面有一个单独的方法叫做editFields。至于使用用户名登录,我不知道如何更改该用户名。为此,您必须重写proto user的一些方法。