
CakePHP Framework: Kiểm tra tính hợp lệ của dữ
liệu (data validation)

Data Validation là một trong những thành phần không thể thiếu trong hầu hết
các ứng dụng web. Nó giúp cho các dữ liệu được đảm bảo được kiểm tra chặt
chẽ trước khi chèn vào CSDL. Cũng như CodeIgniter, Zend ,CakePHP cũng
có chức năng Data Validation .Bài viết sẽ hướng dẫn cho người dùng cách sử
dụng tập luật và ứng dụng chúng trong các trường hợp cụ thể khác nhau với
các hàm hổ trợ sẵn của CakePHP.
A- Cách làm việc của Datavalidation :
Để sử dụng Datavalidation thì trong ứng dụng của chúng ta cần có hai thành
phần chính :
+ Thành phần form helper : sử dụng cho việc tạo form
1
<?php
2
var $helpers = array
('Html','Form');
3
?>
+ Thành phần namespace validate : sử dụng các tập luật để validation dữ liệu

1
<?php
2
var $validate = array(t
ập_luật);
3
?>
B.Cài đặt Cakephp và viết ứng dụng datavalidation :
Việc thực hiện cài đặt CakePHP là không khó. Nếu bạn vẫn chưa biết làm thì
có thể (Xem lại bài CakePHP Framework cho người mới bắt đầu).
Các thý mục cần chuẩn bị :
- app/controllers/valids_controller.php
- app/model/valid.php
- app/views/valids/
Chuẩn bị cho Controller Valids : (app/controllers/valids_controller.php)
1
<?php
2
class ValidsController extends AppController{

3
var $name = "Valids";
4
var $helpers = array ('Html','Form');
5
var $components = array('Session'); // Use Flash messenger of Session
component
6
?>
Chuẩn bị cho Controller Valids : (app/models/valid.php)
1
<?php
2
class valid extends
AppModel{
3
var $useTable = false; // không sử dụng table valid ðồng nghĩa là không sử
dụng database
4
var $validate = array(); // name space mặc ðịnh khi sử dụng datavalidation
5
?>
Trong ví dụ này các ứng dụng không chèn dữ liệu vào database mà chỉ thông
báo có hợp lệ hay không và báo lỗi týõng ứng .
Nên trong Model tôi dùng namespace là var $useTable = false; để ám chỉ là
không sử dụng bảng CSDL

C. Sử dụng 1 tập luật cho 1 field
- Yêu cầu tạo 1 form nhập liệu với 2 field với các tập luật được mô tả :
- title : không được phép rỗng
- info : không được phép rỗng
Trong Controller Valid ta thêm hàm demo01 :
01
<?php
02
class ValidsController extends AppController{
03
var $name = "Valids";
04
var $helpers = array ('Html','Form');
05
var $components = array('Session'); // Use Flash messenger of Session
component
06
// ---- Valid one rule
07
function demo01(){
08
$this->Valid->set($this->data);
09
if($this->Valid->valid_01()==TRUE){