我想在 Kohana Auth 中使用数字作为用户名。例如,用户名 100001?添加新用户 Kohana 时返回错误:ORM_Validation_Exception [0]:无法验证数组是否可以将用户编号作为 Kohana 中的用户名?
1 回答
编辑: 这个答案看起来比我的更简单,更好,但试着去理解它。
您需要扩展用户模型,我将帮助您使用 ORM 驱动程序的身份验证。
扩展用户模型的步骤:
如果您还没有,请将 Auth 模块配置为使用 orm 并创建一个包含所需字段的数据库表。这是一个很好的例子(这是一个使用 ko3.1 的旧教程,但你仍然可以从中学习)。PS:你可以在'users'表中有任何列,如果你不想要,你不需要'username'列。
打开并仔细阅读这个文件:(
MODULES/orm/classes/model/auth/user.php
它是自我记录的,我希望你理解它。如果没有,请停止阅读这里的答案并阅读 kohana 文档。一些快捷方式:Auth - Kohana 用户指南,Auth (orm) methods,addons:auth将文件(不要编辑原始文件)复制到
APPPATH/classes/model/auth/user.php
并根据需要进行编辑。您可能想要编辑的一些功能rules
是:filters
和unique_key
(<- 有用)。有创意,您还可以添加自定义功能。测试并更改其他任何需要的东西。
您可以根据需要更改登录方法。您可以通过电子邮件设置登录、自定义验证方法或在保存到数据库之前解析值(请参阅 参考资料public function filters()
)。这对于您尝试使用 ORM 对 auth 模块进行的任何操作都有帮助...但是...如果您真的不想使用 ORM,您可以构建自己的驱动程序,学习如何。
我前段时间在kohana 3.2中做了这个,但我认为你不会在 3.3 中遇到问题。如果您仍有疑问,kohana 论坛上的这个问题可能会有所帮助。