Thứ Sáu, 28 tháng 11, 2008

Sử dụng Element trong Cakephp

Element thật sự là cần thiết khi chúng ta muốn sử dụng một đoạn code nhiều lần trong view hoặc layout. Thay vì chúng ta viết đi viết lại nhiều lần trong các view với một đoạn source giống nhau thì chúng ta chỉ việc viết một lần trong element và sử dụng chúng nhiều lần. Việc tạo một element sử dụng nhiều lần trong cakephp sẽ rất dễ dàng khi chúng ta sử dụng hàm requestAction. Sau đây tôi sẽ hướng dẫn các bạn sử dụng element mà dùng được trong cả cakephp 1.1 lẫn cakephp 1.2.

Đầu tiên chúng ta sẽ tạo ra controller Post như sau:
<?php
class PostsController extends AppController {
var
$name = 'Posts';


function index() {
$posts = $this->Post->findAll();

//Kiểm tra xem hàm requestAction có được gọi hay không
if(isset(
$this->params['requested'])) {
return
$posts;
}
$this->set('posts', $posts);
}
}
?>

Trong hàm index trên ta sẽ kiểm tra xem nó có được gọi bằng hàm requestAciton hay không. Nếu có thì hàm sẽ trả về một mảng $posts. Bây giờ chúng ta sẽ tạo ra một element post.ctp (hay post.thml trong cakephp 1.1) có đường dẫn như sau: /app/elements/posts.ctp.
<?php

$posts = $this->requestAction('posts/index');
foreach($posts as $post):
echo $post['Post']['title'];
endforeach;


?>

Để sử dụng element trên, chúng ta chỉ việc thêm đoạn code sau vào các view hoặc layout là xong.
<?php echo $this->renderElement('posts');?>

Vậy là xong.

Không có nhận xét nào:

Đăng nhận xét