每个人。
我一直在尝试创建用户信息保存过程,并遇到了这个问题。我想对密码字段使用mysql函数password(),但在保存数据时似乎没有办法使用MySQL函数。
有没有办法做到这一点,或者在 CakePHP 中根本不可能?
谢谢你。
TLDR:
$this->data['MyModel']['password'] =
DboSource::expression('PASSWORD('.$password.')');
更多细节:
我同意评论者的观点,即按照您的要求去做并不理想,但如果您真的想要,您可以直接使用该query()
方法运行常规 MySQL 查询。更多信息在这里:
http://book.cakephp.org/2.0/en/models/retrieving-your-data.html#model-query
例子:
$this->Picture->query("SELECT * FROM pictures LIMIT 2;");
或者使用上面“TLDR”中提到的方法,它允许您使用 MySQL 函数来处理您的数据。
不同(但推荐)的方法:
以下是有关如何使用 CakePHP 方式对密码进行哈希处理的文档:
http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html#hashing-passwords