2014-05-14 1 views
-1

Il y a une fonction AppController:CakePHP - paramètre au contrôleur (PAS demande url)

function products() 
{ 
    $products=$this->Product->find('all',array('order' => array('Product.publish_order ASC') ,'fields'=>array('id','name','price','publish'))); 
    $this->set('products',$products); 
    $counter=$this->Pincode->find('count',array('order' => array('Pincode.product_id DESC '),'conditions' => array('product_id' => $pid,'status'=>0))); 
    $this->set('counter',$counter); 
} 

Dans ma mise en page products.ctp Je dois définir une $ pid (comme vous le voyez dans la classe AppController méthode que j'ai utilisé ceci) et le passer.

+2

Vous n'avez que deux options: soit POST via formulaire ou GET via URL passé paramètres ou des chaînes de requête. – mark

+0

Vous voulez dire qu'il n'y a pas de setters? – wertvoll

+1

@wertvoll la distinction entre le traitement côté serveur et le HTML côté client est claire pour vous? Comment une page HTML affichée dans un navigateur peut-elle "appeler un setter" pour votre code côté serveur? –

Répondre

0

Une autre solution consiste à utiliser la session de CakePHP

Code pour ajouter de la valeur en session:

$this->Session->write('Product.id', 25); 

Code pour lire la valeur de la session:

$pid= $this->Session->read('Product.id'); 

Code pour supprimer la valeur de la session :

+4

La session doit être évitée car elle est très instable - en particulier sur plusieurs onglets, le comportement peut être assez étrange et contre-intuitif. – mark