今天准备用CodeIgniter4.1.3版本来开发一个应用,没想到4版本和3版本的区别还是蛮大的,这个表单验证的区别就很大,还得重新学习,照着手册弄了一下,没想到那个手册太难搞懂了。今天用一个示例记录一下表单验证,示例和手册上的差不多的,只是用 bootstrap 前端 UI 框架美化了一下。
开始上代码:
1.验证规则写入配置文件/app/config/Validation.php:
<?php
namespace Config;
use CodeIgniter\Validation\CreditCardRules;
use CodeIgniter\Validation\FileRules;
use CodeIgniter\Validation\FormatRules;
use CodeIgniter\Validation\Rules;
class Validation
{
//--------------------------------------------------------------------
// Setup
//--------------------------------------------------------------------
/**
* Stores the classes that contain the
* rules that are available.
*
* @var string[]
*/
public $ruleSets = [
Rules::class,
FormatRules::class,
FileRules::class,
CreditCardRules::class,
];
/**
* Specifies the views that are used to display the
* errors.
*
* @var array<string, string>
*/
public $templates = [
'list' => 'CodeIgniter\Validation\Views\list',
'single' => 'CodeIgniter\Validation\Views\single',
];
//--------------------------------------------------------------------
// Rules
//--------------------------------------------------------------------
//自定义验证规则
//1.第一种配置方式
//这种配置方式,错误信息不能有效覆盖默认错误信息。
//因为默认错误信息如:username字段必须输入;用户会一头雾水(CI框架已经本地化了的)
/*public $signup = [
'username' => 'required',
'password' => 'required|min_length[6]',
'pass_confirm' => 'required|matches[password]',
'email' => 'required|valid_email'
];
public $signup_errors = [
'username' => [
'required' => 'You must choose a username.'
],
'email' => [
'valid_email' => 'Please check the Email field. It does not appear to be valid.'
]
];*/
//2.第二种配置方式,错误信息能有效覆盖默认信息。
public $signup = [
'username' => [
'rules' => 'required',
'errors' => [
'required' => '必须输入一个用户名'
]
],
'password' => [
'rules' => 'required|min_length[6]',
'errors' =>