php - 在 CodeIgniter 4 中显示错误消息
问题描述
我谦虚地寻求有关如何在 CI4 中显示错误消息的帮助。我已经创建了一个这样的控制器:
public function login()
{
$validation = \config\services::validation();
$errors = array('email' => 'bad email',
'pass' => 'bad pass ');
if(!$this->validate(array('email' => 'required',
'pass' => 'required')))
{
echo view('login', array('validation' => $this->validator));
}
else
{
print 'success';
}
}
同时测试了以下每个错误报告功能:
$validation->listErrors();
$validation->listErrors('list');
$validation->showError();
$validation->showError('sigle');
$validation->showError('email');
但是这些功能都不起作用,如果我输入了正确的数据,它会打印成功作为分配但在错误的数据上它都显示相同的错误消息,即:
- 在 null 上调用成员函数 listErrors()。
- 在 null 上调用成员函数 listErrors()。
- 在 null 上调用成员函数 showError()。
- 在 null 上调用成员函数 ShowError()。
解决方案
在验证开始之前在控制器中调用表单助手
helper('form');
我像这样重新安排你的代码
public function login()
{
$data = [
'validation' => \config\services::validation()
];
if ($this->request->getMethod() == "post") { // if the form request method is post
helper('form');
$rules = [
'email' => [
'rules' => 'required',
'errors' => [
'required' => 'bad email'
]
],
'pass' => [
'rules' => 'required',
'errors' => [
'required' => 'bad pass'
]
]
];
if (!$this->validate($rules)) {
echo view('login', array('validation' => $this->validator));
} else {
// whatever you want todo
}
}
echo view('login', $data);
}
在您的登录视图中,如果您想调用所有错误列表,请使用此方法$validation->listErrors();
如果要调用特定错误,请使用此方法$validation->listErrors('email');
如果要检查是否返回错误的特定字段,请使用此方法$validation->hasError('email'))
我希望这可以帮助您解决问题
推荐阅读
- python - Django 表单字段未加载到模板上
- amazon-web-services - 无服务器 AutoScaling DynamoDB 错误:ScalingTargetId 必须采用以下格式
- java - 如何设计一个继承自 Rectangle 类的 Square 类
- android - 如何让 Espresso 测试继续进行而不等待异步任务完成?
- python - 多处理模块中 Pool 对象和 Manager 对象之间的位置
- excel - 工作日总和,计算过滤数据
- c++ - 使用 std::unique_ptr 有什么好处吗
& 而不是 std::unique_ptr ? - postgresql - Postgres - 如何合并分区?
- angular - 在 Angular 中隐藏会话存储值
- ruby-on-rails - 设计:使用默认关联对象初始化对象