Upgrade Validations
Documentations of Library
변경된 사항
유효성 검사 오류 표시를 변경하려면 CI4 유효성 검사 뷰(view) 템플릿을 설정해야 합니다.
CI4 유효성 검사에는 CI3의 콜백이나 호출 가능이 없습니다.
CI4 유효성 검사 형식 규칙은 빈 문자열을 허용하지 않습니다.
CI4 유효성 검사는 데이터를 변경하지 않습니다.
Upgrade Guide
폼을 포함된 뷰의 다음 항목을 변경합니다.
<?php echo validation_errors(); ?>
대신<?= $validation->listErrors() ?>
컨트롤러의 다음 항목을 변경합니다.
$this->load->helper(array('form', 'url'));
대신helper(['form', 'url']);
$this->load->library('form_validation');
삭제if ($this->form_validation->run() == FALSE)
대신if (! $this->validate([]))
$this->load->view('myform');
대신echo view('myform', ['validation' => $this->validator,]);
컨트롤러에서 유효성 검사 규칙을 배열로 설정하여 변경합니다.
<?php $isValid = $this->validate([ 'name' => 'required|min_length[3]', 'email' => 'required|valid_email', 'phone' => 'required|numeric|max_length[10]', ]);
Code Example
CodeIgniter Version 3.x
Path: application/views
<html>
<head>
<title>My Form</title>
</head>
<body>
<?php echo validation_errors(); ?>
<?php echo form_open('form'); ?>
<h5>Username</h5>
<input type="text" name="username" value="" size="50" />
<h5>Password</h5>
<input type="text" name="password" value="" size="50" />
<h5>Password Confirm</h5>
<input type="text" name="passconf" value="" size="50" />
<h5>Email Address</h5>
<input type="text" name="email" value="" size="50" />
<div><input type="submit" value="Submit" /></div>
</form>
</body>
</html>
Path: application/controllers/
<?php
class Form extends CI_Controller {
public function index()
{
$this->load->helper(array('form', 'url'));
$this->load->library('form_validation');
// Set validation rules
if ($this->form_validation->run() == FALSE) {
$this->load->view('myform');
} else {
$this->load->view('formsuccess');
}
}
}
CodeIgniter Version 4.x
Path: app/Views
<html>
<head>
<title>My Form</title>
</head>
<body>
<?= $validation->listErrors() ?>
<?= form_open('form') ?>
<h5>Username</h5>
<input type="text" name="username" value="" size="50" />
<h5>Password</h5>
<input type="text" name="password" value="" size="50" />
<h5>Password Confirm</h5>
<input type="text" name="passconf" value="" size="50" />
<h5>Email Address</h5>
<input type="text" name="email" value="" size="50" />
<div><input type="submit" value="Submit" /></div>
</form>
</body>
</html>
Path: app/Controllers/
<?php
namespace App\Controllers;
use CodeIgniter\Controller;
class Form extends Controller
{
public function index()
{
helper(['form', 'url']);
if (! $this->validate([
// Validation rules
])) {
echo view('myform', [
'validation' => $this->validator,
]);
} else {
echo view('formsuccess');
}
}
}