2010-08-09 5 views
0

Je suis un nouveau dans CakePHP et je suis à la recherche d'un code, je suis fonction téléchargé qui ressemble à ci-dessous:

$this->set(array('fruit' => 'orange', 'vegetable' => 'kale')); 

Dans le code, les variables du tableau sont accessibles dans une autre fonction de contrôleur en utilisant cette méthode:

$varsSet = $this->viewVars; 
echo $varsSet['vegetable']; 

ce que je voudrais faire accéder aux variables de tableau dans la même fonction dans le contrôleur où l'instruction $ this-set() est fait, et il semble que je devrais être capable de le faire avec juste une ligne de code. J'ai essayé tous les éléments suivants:

echo $fruit; 
echo $this->field('fruit'); 
echo $this->MyModel->$fruit; 
echo $this->MyModel->field('fruit'); 

Et tous ces Parse throw, variable non définie, ou variable erreurs non trouvées. Quelle serait la manière la plus simple/la plus appropriée d'accéder à la variable dans la même fonction dans le contrôleur?

Merci,

Jonathan

Répondre

1

Fonction $ this-> set() dans le contrôleur est utilisé pour passer des variables du contrôleur à la vue.

I.e.

Si vous avez:

$this->set('fruit' => array('orange', 'vegetable' => 'kale')); 

Puis dans la vue associée vous pouvez accéder au tableau directement

print_r ($ fruit);

Si vous souhaitez utiliser la variable de fruits dans le contrôleur, alors vous devez l'affecter à la var i.e. .:

$fruits = array('orange', 'vegetable' => 'kale'); 
$this->set('fruit', $fruits); 

Mais votre question n'est pas très clair ce que vous voulez atteindre avec cela.

+0

Désolé pour la confusion ... Je me demandais si je devais juste créer la variable, puis l'utiliser comme nécessaire dans le contrôleur et le passer à $ this-set(), et cela répond à ma question, merci! – Jonathan

+0

'$ this-> set ('fruit' => $ fruits)' ne fonctionnera pas car il contient des erreurs de syntaxe. Utilisez '$ this-> set ('fruit', $ fruits)' à la place. – Camilo

+0

D'accord Camilo, corrigé l'erreur –

Questions connexes