php - CodeIgniter 4 中的无效规则
问题描述
我正在尝试为用户创建更新页面。名字和姓氏已成功更新,但是当我尝试更新密码时,它给了我一个错误,提示该规则不是有效规则。我不明白是什么问题。这是我的个人资料方法。
public function profile()
{
$data = [];
helper(['form']);
$model = new UserModel();
if ($this->request->getMethod() == 'post') {
$rules = [
'firstname' => 'required|min_length[3]|max_length[20]',
'lastname' => 'required|min_length[3]|max_length[20]',
];
if ($this->request->getPost('password') != '') {
$rules['password'] = 'required|min_length[8]|max_length[255]|';
$rules['password_confirm'] = 'matches[password]';
}
if (! $this->validate($rules)) {
$data['validation'] = $this->validator;
} else {
$newData = [
'id' => session()->get('id'),
'firstname' => $this->request->getPost('firstname'),
'lastname' => $this->request->getPost('lastname'),
];
if ($this->request->getPost('password') != '') {
$newData['password'] = $this->request->getPost('password');
}
$model->save($newData);
session()->setFlashData('success', 'Successfully Updated');
return redirect()->to('/profile');
}
}
$data['user'] = $model->where('id', session()->get('id'))->first();
echo view('templates/logreg/header', $data);
echo view('profile');
echo view('templates/logreg/footer');
}
解决方案
尝试删除此行中的最后一个管道字符:
$rules['password'] = '必需|min_length[8]|max_length[255]|';
-> $rules['password'] = 'required|min_length[8]|max_length[255]';
推荐阅读
- gremlin - 如何找到与其他顶点共享许多连接的顶点
- java - 为什么 jmap -histo 的结果与 jmap -dump 不同
- android - 需要将 recyclerview 单击的项目 id 传递给第二个 recyclerview
- symfony - Symfony 4 - 供应商捆绑包找不到标记的自动接线服务
- nginx - NGINX:在 access_log 中混淆密码
- shell - 需要 cronjob 来备份、压缩和开发空文件
- java - 设计文档 api java
- .net-core - 无法在 Rider 中禁用某些 stylecop 规则
- php - 动态外键的数据库关系
- windows - 使用 WiX 在安装时启动外部服务