2009-04-10 9 views
-1

Dans mon CakePHP forms_controller je:Cakephp en utilisant deux modèles

var $uses=array('Form','Field'); 
// ... 
$this->set('retrived',$this->Field->find("all",array('conditions'=>array('Field.formname'=>$formname,)))); 

et dans la vue:

<?php foreach ($retrived as $r): ?> 
    <?php echo $r['Field']['fieldname']; ?><br> 
<?php endforeach; ?> 

Je ne reçois pas la réponse pour elle

En fait, mes champs de table wil être comme:

fieldname 
    formname 
    type 
    value  

Plus de détails de mon forms_controller:

function views() 
{ 
    if (!empty($this->params['form'])) 
    { 
     $this->set('fieldctr',$this->params['form']['formfieldctr']); 
      $fieldctr=$this->params['form']['formfieldctr']; 

     if(!empty($this->params['form']['formnameelements'])) 
     { 
      $this->set('formname',$this->params['form']['formnameelements']);//formname 
      $this->Form->saveField('name',$this->params['form']['formnameelements']); 
     } 
     else 
     { 
      $this->set('formname','MyForm');//formname 
      $this->Form->saveField('name','MyForm'); 
     } 

     $this->Form->saveField('body',$this->params['form']['formelements']);//inserts into database 

     $ret = $this->Form->query("Select id from forms order by id DESC LIMIT 1"); 
     $newid=$ret[0]['forms']['id'];echo $newid; 
     $upd=$this->Form->query("update forms set ctr=$fieldctr where id= $newid"); 
     $formname=$this->params['form']['formnameelements']; 

     $n="$formname"; 

     $array = $this->params['form']['formfieldnameelements']; 
     $comma_separated = explode(",", $array); 
     for($i=0;$i<$fieldctr;$i++) 
     { 
      echo $comma_separated[$i]; 
      echo "  "; 
      $n="$comma_separated[$i]"; 

      //insert the fields of each form to the table fields 
      $this->data['Field']['fieldname'] = $comma_separated[$i]; 
      $this->data['Field']['formname'] = $formname; 

      $this->Field->saveAll($this->data); 
     } 

La méthode ci-dessus est l'endroit où j'insérer le formname dans ma table de formes.

et insertion que formname avec leur fieldsname dans la table des champs:

function formupdate() 
{ 
    $this->set('fieldctr',$this->params['form']['formfieldctr']); 
    $fieldctr=$this->params['form']['formfieldctr']; 

    $this->set('formname',$this->params['form']['formnameelements']);//formname 
    $formname=$this->params['form']['formnameelements']; 

    $ret = $this->Field->query("SELECT fieldname FROM fields WHERE fields.formname = "."'$formname'"."order by id ASC"); 
    for($q=0;$q<$fieldctr;$q++) 
    { 
     $fieldname[$q]=$ret[$q]['fields']['fieldname']; 
    } 

    $this->set('retrived',$this->Field->find("all",array('conditions'=>array('Field.formname'=>$formname)))); 

    $array = $this->params['form']['formfieldvalueelements']; 
    $comma_separated = explode(",", $array); 

    for($i=0;$i<$fieldctr;$i++) 
    { 
     echo $comma_separated[$i]; 
     echo "  "; 
     $n="$comma_separated[$i]"; 

     echo $fieldname[$i]; 

     $this->Field->updateAll(array('Field.value' => "'$comma_separated[$i]'"),array('Field.fieldname' => $fieldname[$i],'Field.formname'=>$formname)); 
     } 
    $this->set('retrived',$this->Field->find("all",array('conditions'=>array('Field.formname'=>$formname,)))); 

} // end of function formupdate 

Dans la méthode ci-dessus formupdate j'insérer les valeurs des valeurs correspondantes de ce champs dans la table des champs ... Tous les les valeurs sont insérées correctement - mais dans mon formupdate.ctp vue:


Rien ne s'affiche à mon avis ... eventhough le contenu est t ici dans le tableau ..

S'il vous plaît résoudre mon problème

+0

Votre code * semble * OK. Pourriez-vous poster plus d'informations? Avez-vous une erreur? Ou juste rien ne s'affiche? Pourriez-vous poster plus de votre code d'affichage? –

+0

Oui, s'il vous plaît code postal et rééditer votre message. Je ne suis pas sûr de ce que vous demandez ici. –

+0

Les valeurs sont présentes dans les champs de la table mais elles n'apparaissent pas dans la vue ... – useranon

Répondre

0

les noms de vos modèles, je pense qu'il est prudent de conclure que vous essayez de ouput certains HTML. Puisque la question n'est pas vraiment complète (où est le code?), Nous ne pouvons pas dire ce qui ne va pas.

Une supposition sauvage serait que quelque chose est dépouillé là ou ignoré par votre navigateur.

0

Aruna,

Veuillez poster le code que vous utilisez! Il est possible que l'erreur soit petite, mais sans savoir ce que vous faites, il est impossible d'aider plus que dr. Lecter a fait.

Lorsque vous dites que la table fields est mise à jour correctement, voulez-vous dire que vous pouvez invoquer la méthode Model :: save() en toute sécurité? Appelez-vous alors Model :: read() ou Model :: find() dans le contrôleur, puis utilisez les valeurs retournées pour définir une variable accessible dans la vue?

Questions connexes