Lili PHP framework-提交的模型属性在保存前消失
我正在做一个项目,使用Limition PHP框架构建,但有一个奇怪的问题: 我有两个用户控制器-一个用于站点前端,一个用于管理面板。它们都有Lili PHP framework-提交的模型属性在保存前消失,php,frameworks,resources,lithium,Php,Frameworks,Resources,Lithium,我正在做一个项目,使用Limition PHP框架构建,但有一个奇怪的问题: 我有两个用户控制器-一个用于站点前端,一个用于管理面板。它们都有edit()方法,该方法调用Users模型的save方法 问题是这个: 当我试图在管理面板中更改密码时-$request->data包含confirmPasswordPOST字段---但是---不会触发它的验证规则。 当我尝试在前端注册用户时,confirmPassword的验证就会触发 这些方法有一个相同的代码: public function {add
edit()
方法,该方法调用Users
模型的save
方法
问题是这个:
当我试图在管理面板中更改密码时-$request->data
包含confirmPassword
POST字段---但是---不会触发它的验证规则。
当我尝试在前端注册用户时,confirmPassword
的验证就会触发
这些方法有一个相同的代码:
public function {add / edit} ($request, $user) {
if (!$request->data) {
return array(200, $user);
}
$success = $user->save();
return array($success, $user);
}
验证规则在模型中,&它使用自定义验证,在config/bootstrap/validation.php
中定义,代码如下:
Validator::add('matchesPassword',函数($value,$format,$options){…
最后,这个网站是用Lili PHP框架构建的(对我来说是新的),使用li3_资源
,所有的控制器和模型都扩展了这个资源
类
那么…这个帖子栏在哪里消失了?…有什么线索吗
编辑:当我编写公共函数{add/Edit}($request,$user){
时,我指的是两种方法:
public function add($request, $user) { ...
public function edit($request, $user) { ...
谢谢。我找到了问题的原因:) 在以前的开发人员在模型中定义的验证规则中,有以下条款:
'on'=>“创建”
这导致编辑时未触发验证规则
PS:我试图在验证本身中转储规则(在这个类中——在第469行的annonimous函数中:
返回静态::_过滤器(_函数,$params,函数($self,$params){
但是转储从未发生过???…可能如果它在那里工作的话-这可以节省我一些时间…您是否转储了数据(即
$request->data
或$user->data()
)要查看它是否确实存在并正在填充?仅根据您的描述,您的字段名(confirmPassword
)和验证规则(passwordConfirm
)之间似乎不匹配。请参阅models/Users.php
,第57行。当我在add
和edit
方法中进行转储时,则$request->data
包含密码
和passwordConfirm
属性并具有正确的值,而$user->data()
没有…它只包含密码
,并且其中的值已经加密。(事实上-我猜这是在实际尝试保存数据之后发生的。)(顺便说一句,这是我对确认密码
的错误,我没有类似的东西:)…到处都是passwordConfirm
视图、模型等)