Thứ Bảy, 17 tháng 1, 2009

Cakephp 1.2 - một số hàm hepler thường dùng (Phần 1)

Với các bạn đã từng làm việc với cakephp hẳn các bạn không lạ gì việc sử dụng các hepler trong cake như form, html, javascript. Sau đây tôi xin liệt kê một số hàm hay sử  dụng nhất trong cakephp, cấu trúc và cách sử dụng chúng.
1. javascript->link:Chỉ link đường dẫn tới file javascript

Cú pháp:

$javascript->link($url, $inline);

$url (require): đường dẫn tới file javascript. Các file javascript sẽ được đặt trong thư mục 'app/webroot/js'. Mặc định url là đường dẫn tới thư mục app/webroot/js/.

$inline: (boolean) . Nếu giá trị là true, thì thẻ script sẽ được in trong thẻ header , nếu là false thì sẽ in trong $script_for_layout. Giá trị mặc đinh là true.
Ví dụ:

<?php echo $javascript->link('script.js', true); ?>
//Dữ liệu trả về html
<script type="text/javascript" src="/test/js/script.js"></script>

2. html->css:link chỉ đường dẫn tới một file css

Cú pháp:

$html->css(mixed $path, string $rel = null, array $htmlAttributes = array(), boolean $inline = true);

Tạo một link tới file css. Nếu $inline được gán là false, thì thẻ css sẽ được đặt bên trong biến $script_for_layout, còn là true thì đặt trong thẻ header. Mặc định đường dẫn trong của file css là /app/webroot/css/.
Ví dụ:

<?php echo $html->css('forms'); ?>
//Dữ liệu trả về html
<link rel="stylesheet" type="text/css" href="/test/css/forms.css" />

//Ta cũng có thể khai báo nhiều file css cùng một lúc
<?php echo $html->css(array('forms','tables','menu')); ?>
//Dữ liệu trả về html
<link rel="stylesheet" type="text/css" href="/test/css/forms.css" />
<link rel="stylesheet" type="text/css" href="/test/css/tables.css" />
<link rel="stylesheet" type="text/css" href="/test/css/menu.css" />

3. html->image: Link đường dẫn tới một file ảnh

Cú pháp:

$html->image(string $path, array $htmlAttributes = array());

Tạo ra một thẻ định dạng là image. Mặc định nó sẽ chỉ tới thư mục /app/webroot/img/
Ví dụ:

<?php echo $html->image('cake_logo.png', array('alt' => 'CakePHP'))?>
//Dữ liệu trả về html
<img src="/img/cake_logo.png" alt="CakePHP" />

4. html->link: Tạo ra một thẻ html link.

Cú pháp:

$html->link(string $title, mixed $url = null, array $htmlAttributes = array(), string $confirmMessage = false,boolean $escapeTitle = true);


Tạo ra một thẻ html link. Các tham số truyền vào là
$title: Nhãn của đường link.
$url: Đường dẫn của link liên kết.
$htmlAttributes: các thuộc tính html của thẻ link.
$confirmMessage: Thông báo khi kích vào link. Mặc định giá trị là false.
Ví dụ:

<?php echo $html->link('Enter', '/pages/home', array('class'=>'button')); ?>
//Dữ liệu trả về HTML
<a href="/pages/home" class="button">Enter</a>

<?php echo $html->link('Delete', array('controller'=>'recipes', 'action'=>'delete', 6), array(), "Are you sure you wish to delete this recipe?");?>
//Dữ liệu trả về html
<a href="/recipes/delete/6" onclick="return confirm('Are you sure you wish to delete this recipe?');">Delete</a>

//Chuỗi query cũng có thể tạo ra từ một thẻ link()
<?php echo $html->link('View image', array('controller' => 'images', 'action' => 'view', 1, '?' => array( 'height' => 400, 'width' => 500))); ?>
//Dữ liệu trả về html
<a href="/images/view/1?height=400&width=500">View image</a>

5. html->url: Tạo ra đường dẫn tới link hiện tại

Cú pháp:

$html->url($path);

Ví dụ:


//Giả sử ta đang trong project test

<?php echo $html->url('cake.jpg'); ?>
//Dữ liệu trả về html
'/test/cake.jpg'
<?php echo $html->url('/file.txt'); ?>
//Dữ liệu trả về html
/test/file.txt

6. form->create: Tạo ra một thẻ form mở

Cú pháp:

$form->create(string $model = null, array $options = array());

Tất cả các tham số có thể là tùy chọn. Nếu không có tham số truyền vào, thì mặc định phương thức là POST, và controller và action nào gọi ra view chứa form này thì khi submit thì form sẽ chuyển dữ liệu về controller và action đấy.
Ví dụ:


//ta tạo ra một form trong action có tên là add
<?php echo $form->create('Recipe'); ?>
//Dữ liệu trả về html:
<form id="RecipeAddForm" method="post" action="/recipes/add">

Các tham số truyền vào:
$model: tên model dùng để khởi tạo form đấy.
$option: Các thuộc tính khai báo thêm cho form đấy bao gồm
+ $options['type']: Chỉ định các phương thức truyền dữ liệu. Giá trị hợp lệ bao gồm 'post', 'get', 'file', 'put' và 'delete'.
Ví dụ:

<?php echo $form->create('User', array('type' => 'get')); ?>
//Dữ liệu trả về html
<form id="UserAddForm" method="get" action="/users/add">

<?php echo $form->create('User', array('type' => 'file')); ?>
//Dữ liệu trả về html
<form id="UserAddForm" enctype="multipart/form-data" method="post" action="/users/add">

+options['url']: Chỉ định đường dẫn khi form truyền dữ liệu. Giá trị url có thể truyền vào một chuỗi hay một mảng.
Ví dụ:

<?php echo $form->create(null, array('url' => '/recipes/add')); ?>
// hoặc
<?php echo $form->create(null, array('url' => array('controller' => 'recipes', 'action' => 'add'))); ?>
//Dữ liệu trả về html:
<form method="post" action="/recipes/add">

<?php echo $form->create(null, array('url' => 'http://www.google.com/search', 'type' => 'get')); ?>
//Dữ liệu trả về html:
<form method="get" action="http://www.google.com/search">

+options['action']:  Cho phép chỉ định một action bất kỳ trong controller hiện tại. Giả sử bạn muốn truyền dữ liệu tới form login trong controller hiện tại, bạn có thể khai báo như sau:
<?php echo $form->create('User', array('action' => 'login')); ?>
//Dữ liệu trả về html:
<form id="UserLoginForm" method="post" action="/users/login">
</form>

7. form->end: tạo ra một thẻ form đóng

Cú pháp:

$form->end('submitName');

Tạo ra một thẻ form đóng trong trường hợp đã sử dụng $form->create.
Ví dụ:

<?php echo $form->create(); ?>

<!-- Form elements go here -->

<?php echo $form->end(); ?>
hoặc:
<?php echo $form->end('Finish'); ?>

//Dữ liệu trả về html

<div class="submit">
<input type="submit" value="Finish" />
</div>
</form>

2 nhận xét:

  1. hi các anh
    các bài viết này rất hay
    mong được làm quên với các anh
    nick yh em là honsoibuon_htv
    gmail: honsoibuon@gmail.com

    thanks for share

    Trả lờiXóa
  2. epJZj9 cytdajciwnvm, [url=http://jshomtnkefnd.com/]jshomtnkefnd[/url], [link=http://cblluxgqjncb.com/]cblluxgqjncb[/link], http://vmyprznjzkcd.com/

    Trả lờiXóa