Tìm hiểu về Yii framework (tiếp theo)
Tìm hiểu về Yii Framework (tiếp) Các thành phần thường được sử dụng trong model Có rất nhiều thành phần đã được định nghĩa sẵn trong yii framework giúp cho lập trình viên phát triền ứng dụng 1 cách dễ dàng và nhanh chóng hơn . Ví dụ Như thao tác với thành phần **Component **thường là ...
Tìm hiểu về Yii Framework (tiếp)
Các thành phần thường được sử dụng trong model
Có rất nhiều thành phần đã được định nghĩa sẵn trong yii framework giúp cho lập trình viên phát triền ứng dụng 1 cách dễ dàng và nhanh chóng hơn .
Ví dụ
- Như thao tác với thành phần **Component **thường là : CwebUser, CuserIdentity hay
CurlManager .. . Hay với thành phần Model có các thành phần thường gặp là :CactiveRecord, CdbCriteria, CformModel, Cvalidation , nhờ có những thành phần trên mà việc thao tác và làm việc với yii trở nên rất linh hoạt , tối ưu và tích kiệm được nhiều thời gian công sức .
Trong bài viết này tập trung vào 1 số thành phần thường được sử dụng trong Model
I. CformModel
CFormModel đại diện cho một mô hình dữ liệu hình thức thu thập dữ liệu đầu vào HTML, không giống như CActiveRecord các dữ liệu thu được chỉ lưu vào bộ nhớ tạm thời, để xác thực dữ liệu, tìm kiếm,… chứ không cần phải lưu vào database .
Để có thể thu thập dữ liệu của user nhập vào , bạn nên extend CformModel và định nghĩa các thuộc tính thuộc giá trị của dữ liệu nhập vào . Bạn có thể ghi đè (override) hàm rules() để định nghĩa lại tính đúng đắn của giá trị nhập vào .
Trên đây là một ví dụ tạo 1 form đăng nhập đơn giản bằng CformModel
username, password và rememberMe. Chúng được sử dụng để giữ cho tên người dùng người dùng nhập vào và mật khẩu, và các tùy chọn xem người dùng muốn ghi nhớ thông tin đăng nhập của mình.
Như đã nói ở trên . Chúng ta có thể định nghĩa lại tính đúng đắn của dữ liệu nhập vào qua hàm rules() :
ở đây username và password là bắt buộc (required) . Và đây coi như kết thúc phần định nghĩa cho SigninForm .
Tiếp theo sẽ là xây dựng controller và view cho form này . Ở đây đối tượng SigninForm được sử dụng bởi đối tượng user . Nên ta sẽ khai báo ở trong UserController .
Tương tự khai báo trong view của user
Khi user đăng lập vào SigninForm dữ liệu sẽ được kiểm tra qua hàm rules() nếu phù hợp sẽ được so sánh vào trong csdl .
Ngoài ra yii framework cũng cũng cấp rất nhiều hàm và thư viện cho CformModel bạn có thể tham khảo tại : http://www.yiiframework.com/doc/api/1.1/CFormModel
II . CdbCriteria
Thành phần CdbCriteria đại diện cho một tiêu chí truy vấn , chằng hạn như tìm kiếm theo điều kiên hoặc sắp xếp(order by) hoặc tìm kiếm giới hạn(limit,offset) …
Nó còn có thể được sử dụng trong phương pháp truy vấn AR của thành phần CactiveRecord:find and CactiveRecord:findAll
Các thuộc tính phổ biến thường được sử dụng với CdbCriteria được mô tả đầy đủ trong bảng sau
Thông tin đầy đủ có thể tham khảo tại : http://www.yiiframework.com/doc/api/1.1/CDbCriteria
Sau đây chúng ta sẽ tiến hành xây dựng đơn giản 1 form tìm kiếm sử dụng CdbCriteria .
Ở ví dụ này chúng ta có 1 table chứ dữ liệu của 1 loạt các đoàn viên .
ở bảng này có rất nhiều thuộc tính . Có thể tìm theo tất cả các thuộc tính hoặc chỉ 1 thuộc tính tùy thuộc vào điều kiện tìm kiếm . CdbCriteria khác với CformModel là chúng ta ko phải xây dựng riêng 1 lớp để định nghĩa cho việc form tìm kiếm .
CdbCriteria đã được xây dựng sẵn chúng ta chỉ việc add các thuộc tính tìm kiếm vào đối tượng CdbCriteria rồi những việc còn lại sẽ được tự động làm .
Việc định nghĩa trong controller ta khai báo 1 đối tượng CdbCriteria :
Cuối cùng trong truy vấn get kết quả ta thêm điều kiện đối tượng CdbCriteria vào
Kết quả như hinh sau :