2013-03-20 3 views
0

Ce que j'essaie de faire, c'est de donner aux utilisateurs un moyen de passer en revue plusieurs produits de l'inventaire.Cakephp Transmettre un tableau de cases à un autre contrôleur

Mes produits page d'index (listes tous les produits disponibles à vérifier sur) ressemble à ceci:

<?php echo $this->Form->create('multi');?> 
<?php foreach ($products as $product): ?> 
<tr class="hovertable"> 
    //All the fields go here 
    <td style="cursor: default"> 
     <?php echo $this->Html->link($this->Html->image('tr/Checkouts_Add.png') . " " . __('Checkout'), array('controller' => 'Checkouts','action' => 'add', $product['Product']['id']), array('escape' => false, 'class' => 'button')); ?> 
     <?php echo $this->Html->link($this->Html->image('tr/Edit.png'), array('action' => 'edit', $product['Product']['id']), array('escape' => false)); ?> 
     <?php echo $this->Form->postLink($this->Html->image('tr/Delete.png'), array('action' => 'delete', $product['Product']['id']), array('escape' => false), __('Are you sure you want to delete # %s?', $product['Product']['id'])); ?> 
     <?php echo $this->Form->input('Product.id.'.$product['Product']['id'] , 
      array('label' => false, 
        'type' => 'checkbox', 
        'id'=>'listing_'.$product['Product']['id'])); ?> 
    </td> 
</tr> 
<?php endforeach; ?> 
<?php echo $this->Form->submit(__('Submit'));?> 

Puis dans mon contrôleur checkouts J'ai ajouté une nouvelle fonction à la caisse plusieurs articles, je voudrais ce formulaire à être rempli par les produits soumis au contrôle

public function multi($count = 1) { 
    if($this->request->is('post')) {    
     foreach($this->request->data['Checkout'] as $data) { 
      //Do not forget this line. you need to create new model for saving each time. 
      if ($this->request->isPost()) { 
       $this->Checkout->create(); 
       $this->Checkout->save($data); 
      } else { 
       $this->request->data['Checkout']['product_id'] = $productId; 
      } 
     } 
     $this->redirect(array('action' => 'index')); 
    } 
    $products = $this->Checkout->Product->find('list'); 
    $users = $this->Checkout->User->find('list'); 
    $this->set(compact('products', 'users')); 
    $this->set('count', $count); 
} 

Comme vous le voyez, je l'ai essayé d'ajouter un chapeau Je pensais que pourrait fonctionner, mais le bouton Soumettre de la page d'index des produits ne fait rien. Toute aide serait grandement appréciée!

Répondre

0

Je viens de vérifier plusieurs fois et au moins je comprends l'une des raisons de votre échec est à l'intérieur de votre foreach vous avez quelques error ou warning comme je ne sais pas sur la valeur de votre tableau de produit je vérifie ce code et il a bien fonctionné pour moi:

<?php $products=array('0'=>'11','1'=>'22','2'=>'333'); 
echo $this->Form->create('User');?> 
<?php foreach ($products as $product): ?> 
<tr class="hovertable"> 
    //All the fields go here 
    <td style="cursor: default"> 

     <?php echo $this->Form->input('Product.id.'.$product, 
      array('label' => false, 
        'type' => 'checkbox', 
        'id'=>'listing_'.$product)); ?> 
    </td> 
</tr> 
<?php 
endforeach; 

echo $this->Form->end(__('Submit')); 

si vous avez pas d'erreur ou d'avertissement, je vous dis sans vérifier

$ this-> form-> postLink

Questions connexes