2010-08-22 9 views
5

Tôi đang xây dựng một trang web yêu cầu nhiều biểu mẫu cho cùng một mô hình với các số khác nhau trong một trang. Các biểu mẫu này thuộc về một đối tượng có id. Hiện tại, vì tôi không thể tìm ra cách thay đổi id biểu mẫu, tôi bị mắc kẹt với một loạt các id trùng lặp.Làm cách nào để tạo hành động trợ giúp biểu mẫu 'tạo' của cakePHP sử dụng id tùy chỉnh?

Tôi đang tìm cách thêm id đối tượng vào id biểu mẫu để chúng không hợp lệ. Tôi thích viết javascript của riêng mình vì vậy tôi sẽ không sử dụng trình trợ giúp ajax.

<?php 

/** 
* This is a simplified example of what I am trying to do. 
*/ 

?> 

<div id="objects"> 
    <?php foreach($objects as $object): ?> 
    <div class="object"> 
     <?php echo "this is object {$object['Object']['id']}"?> 
     <?php 
     //The following element would show a number of comments the object owns 
     echo $this->element('object_comments_loop', array('comments' => $object['Object']['Comments']); 
     ?> 
     <div class="comment"> 
     <?php 
      //each object has a form. 
      //TODO: this is where the id issue comes into play. 

      echo $form->create('Comment', array('url' => array('controller' => 'comments', 'action' => 'createComment')); 
      echo $form->hidden('object_id', array('value' => $object['Object']['id'])); 
      echo $form->input('comment_body', array('label' => __('comment', true), 'type' => 'text')); 
      echo $form->end(__('comment_submit', true)); 
     ?> 
     </div> 
    </div> 
    <?php endforeach; ?> 
</div> 

Trả lời

4
echo $form->create('Comment', array('url' => array('controller' => 'comments', 'action' => 'createComment'), "id" => "form_".$object['Object']['id'])); 

Điều đó sẽ làm các trick, tôi tin.

EDIT:

Sau khi xem xét, đây là những gì tôi đã sử dụng để có được những gì bạn đã hỏi:

echo($form->create('Comment', array('action' => 'createComment', "id" => "form_".$object['Object']['id']))); 
+0

Hãy để tôi nhìn qua mã của bạn, sau đó, bởi vì đây chỉ hoạt động tốt đối với tôi: create ("Option", mảng ("id" => "Test")));?> Xem: codeacula.com và xem nguồn. – Codeacula

+0

Đã cập nhật. Đó là hình thức làm việc cho tôi. Nếu nó không cho bạn, nó vượt ra ngoài kiến ​​thức của tôi với những gì được cung cấp. – Codeacula

+0

ah xin lỗi. Nó hoạt động. Tôi đã có một khoảnh khắc của sự ngu xuẩn. Tôi đã xem xét một trong các yếu tố đầu vào bên trong biểu mẫu, không phải là biểu mẫu. Wow tôi cảm thấy ngớ ngẩn. Cảm ơn bạn đã giúp đỡ. –