2010-08-22 7 views
5

Aynı model için birden çok form gerektiren bir siteyi tek bir sayfa boyunca değişen sayılarda yapıyorum. Bu formlar bir kimliğe sahip bir nesneye aittir. Şu anda, form kimliklerini nasıl değiştireceğimi anlayamadığım için, yinelenen kimliklerden oluşan bir delikle sıkışmış durumdayım.CakePHP'nin form yardımcısı 'create' eylemini nasıl özel yapabilirim?

Nesne kimliğini form kimliğine eklemek için bir yöntem arıyorum, bu nedenle geçersiz değiller. Kendi javascriptimi yazmayı tercih ediyorum, bu yüzden ajax yardımcılarını kullanmayacağım. hile yapmak gerekir

<?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> 

cevap

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

, inanıyorum.

DÜZENLEME: Bu sadece benim için çalışıyor, çünkü

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

beni, sonra kod üzerinde inceleyelim:

incelemeden sonra, bu ben ne soran vardı almak için kullanılır ne create ("Option"), array ("id" => "Test")));>> Bakınız: codeacula.com ve kaynağı görüntüleyin. – Codeacula

+0

Güncelleme. Bu benim için çalışan form. Eğer senin için değilse, verilen şeyle ilgili bilgimin ötesinde. – Codeacula

+0

ah üzgünüm. Çalışıyor. Gördüğüm bir aptallık anı yaşadım. Formun kendisinden değil, formdaki girdilerden birine bakıyordum. Vay canına aptalca hissediyorum. Yardım ettiğin için teşekkür ederim. –