Element, Component trong CakePHP
Element :
trong CakePHP, Element được sử dụng khá giống với “include”. Nó dùng để lưu trữ 1 đoạn code được dùng đi dùng lại nhiều lần, thay vì ta phải copy/paste đoạn code đó qua các trang thì ta chỉ việc viết 1 câu lệnh ngắn gọn :
renderElement('');?>
chỉ như cần 1 đoạn code như vậy ta có thể thay thế việc vất vả copy rồi paste liên tục, mất thời gian lại khiến code của bạn nhìn rất tối, khó chỉnh sửa sau này !
VD cụ thể như sau :
trong controller của bạn, bạn thực hiện thêm công việc kiểm tra xem element có được gọi hay ko :
function index() { $posts = $this->Session->setFlash('hello world'); if (isset($this->params['requested'])) { return $posts; } }
Nếu Element được gọi, giá trị giả về sẽ là dòng text ‘hello world’. (bạn cũng có thể thay thế bằng những câu lệnh theo ý của bạn như : find(), read() …..)
tiếp theo, trong app\views\element\ chúng ta tạo 1 file php, tên tùy ý bạn đặt. Ở ví dụ này tôi đặt tên là test.php :
requestAction('posts/index'); echo $posts;
?>
Trong file này, câu lệnh $this->requestAction(‘posts/index’) là bắt buộc phải có,đây là câu lệnh lấy giá trị được trả về từ controler trên.
Cuối cùng là công việc cho hiển thị element ta vừa tạo được ra trang index, đó là câu lệnh thay thế việc copy/paste mà tôi đã nói ở trên :
renderElement('posts');?>
Nếu bạn vẫn cảm thấy khó hiểu và không biết làm thế nào để hiển thị các bản ghi trong CSDL của mình ra thay cho đoạn text ‘hello world’ thì bạn có thể tham khảo thêm bài viết của hoanbn : http://i-php.net/2008/11/s%E1%BB%AD-d%E1%BB%A5ng-element-trong-cakephp/
Component :
Component là nơi thực hiện các công việc phức tạp như upload…, nó cũng được dùng đi dung lại nhiều lần ! thay vì việc copy/paste lại công việc thực thi đó ta chỉ cần truyền dữ vào cho Component từ controller. Sau đó dữ liệu sẽ được đưa đến Component xử lý .
VD :
trong app\views\posts\ ta tạo file index.ctp (cakephp 1.2) hay index.thtml (cakePHP 1.1)
hello
create('Post',array('action'=>'index')); echo $form -> input('text'); echo $form -> end('save'); ?>
trong app\controller\components\ ta tạo 1 file php tên j` j` đó chẳng hạn như : test.php
cuối cung, trong post controller ta chỉ việc truyền dữ liệu text vào để component xử lý :
function index() {
if (!empty($this->data))
{
if($this->test->hello($this->data['Post']['text']))
{
$this->Session->setFlash($this->test->hello($this->data['Post']['text']));
$this->redirect (array('action' => 'index'));
}
}
}
chú ý : test là tên file component bạn tạo ở trên, hello là tên function thực thi mệnh lệnh, còn
$this->data['Post']['text'] là dữ liệu bạn nhập vào !
bây giờ bạn có thể xem kết quả mình vừa tạo ra….!
hi vọng là chạy được
(i-php.net)
Các tin khác cùng chuyên mục
- Kỹ thuật lập trình HTML/CSS mới nhất 2020 - 04
- Funny web2.0
- Giải thử vài câu đề thi tốt nghiệp ptth môn toán
- MỘT NGÀY PHẢI KHÁC MỌI NGÀY
- Level 1 - Lập trình hướng đối tượng (P2)
- Level 1 - Lập trình hướng đối tượng (P1)
- PHP 5.3, Phần 3: Không gian tên
- PHP 5.3, Phần 2: Bao đóng và các hàm lambda
- PHP 5.3, Phần 1: Các thay đổi về giao diện đối tượng
- Tăng tốc độ xử lý CSDL MySQL
Liên kết
Tin được quan tâm nhất
- Ant Group của Jack Ma hé lộ bước đi đầu tiên...
- Ô tô giao hàng tự lái sẽ bắt đầu hoạt...
- Clip cô giáo phạt học sinh tự ném vỡ...
- Tiền điện tử lớn thứ ba thế giới Ripple...
- Joe Biden kêu gọi hiện đại hóa hệ thống...
- Viettel khai trương nền tảng Hồ sơ sức khỏe...
- Các hãng di động nên ngừng cãi nhau về việc...
- Công nghệ AI của Alibaba và Tân Hoa Xã: Đối...
- Một năm đáng thất vọng của YouTube trên toàn...
- EVN lần đầu diễn tập an toàn thông tin mạng...
- Đây là chiếc iPhone được mua nhiều nhất...
- Bộ Tài chính ra quy chế mới về quản lý, sử...
- Cập nhật nhãn mới giúp người tiêu dùng...
- Kiếm tiền từ 5G: Thách thức lớn nhất của...
- "Hô biến" iPhone thành cục đá: Có thể bị...
- Phí trước bạ ô tô không gia hạn giảm, sẽ...
- Tại sao Apple chế tạo ô tô?
- Viettel cung cấp dịch vụ 5G tại thành phố...
- Đội KingTigerPrawn của Hàn Quốc giành giải...
- Thứ trưởng Phan Tâm: “Triển khai hạ tầng 5G...
- Nhiều mẫu iPhone chính hãng đang khan hàng tại...
- Mỹ quy định drone cần có ID, trang bị đèn ban...
- Trung Quốc điều tra Alibaba: Bài học cho Jack Ma...
- Chuyên gia dự báo 5 xu hướng tấn công mạng...
- Apple MagSafe vẫn còn rất nửa vời
- Các tỉnh cuối cùng đã ngừng phát sóng...
- 55/63 tỉnh thành sử dụng Zalo trong cải cách...
- Headline: CR7: “Mong muốn của tôi là luôn...
- Samsung dự kiến xuất xưởng dưới 300 triệu...
- Vì sao Trung Quốc ‘sờ gáy’ Alibaba?
- Những smartphone được người Việt mua nhiều...
- Vì sao mua hàng ở sàn TMĐT Mỹ không cần...
- Đằng sau bức ảnh động viên Đà Nẵng chiến...
- VNPT cung cấp MyTV Box 2020 - Tính năng nâng cấp...
- Clip hành động ghê tởm của shipper trước khi...
- Các đội thi chung kết WhiteHat Grand Prix 6 phát...