【发布时间】:2022-10-25 15:59:25
【问题描述】:
我有表格来提交表格。这张桌子有我设置的模型validationRules。但是在某些情况下,我偶尔需要 1 个字段。所以,我没有把这个暂定的必填字段放在validationRules 上。
当我们调用 $model->errors() 时如何附加新的错误项。我尝试推送新项目,但现有的 $model->errors() 总是替换为我想附加的项目。
像这样:
...
$data = [
'name' => 'Jane Doe',
'address' => 'California',
'gender' => 'Female',
'hobby' => 'Reading novel',
'book_genre' => 'Thriller'
];
if( $model->insert($data) ) {
$response = [
'success' => true,
'msg' => 'Good job'
];
} else {
$errors = $model->errors();
if($this->request->getPost('hobby') == 'Reading novel' && $this->request->getPost('book_genre') == '') {
$errors['book_genre'] = 'Book genre must be filled.';
}
$response = [
'success' => false,
'msg' => '<p>' . implode('</p><p>', $errors) . '</p>'
];
}
...
关键是,如何在 $model->errors() 上追加/推送新项目。可能吗?为什么它被替换没有附加。
谢谢。
【问题讨论】:
标签: php codeigniter model-view-controller codeigniter-4