2010-11-27 8 views
0

Je me demande comment je peux définir certaines variables dans mon contrôleur, puis pouvoir y accéder dans mon modèle et un comportement pour ce modèle.Passer la variable dans cakePHP

J'ai essayé ci-dessous, mais sans chance: dans le contrôleur: $ this-> Model-> data ['foo'] = "bar"; dans le comportement: $ Model-> data ['foo'];

Reconnaissant pour toute aide!

+0

Cela dépend de ce que vous faites entre les deux. 'Model :: $ data' est une variable fortement utilisée qui a probablement été écrasée avant que le Behavior soit appelé. Pouvez-vous élaborer sur ce que vous essayez de faire? – deceze

Répondre

1

L'un des moyens de transmettre des données consiste à utiliser des fonctions définies par l'utilisateur dans votre modèle.

Par exemple,

$flag = $this->Model->checkIntegrity($this->data); 

Dans le modèle,

function checkIntegrity($data) { 
    ... 
} 

Vous pouvez également les passer comme une référence si vous souhaitez apporter des modifications aux données directement:

function checkIntegrity(&$data) { 
    ... 
} 
+0

merci beaucoup! – Jason

0

Cela dépend du type de données que vous essayez de transmettre. S'il s'agit de paramètres de modèle/comportement, vous pouvez utiliser les propriétés de classe. Exemple:

Dans le modèle ou le comportement:

public $custom_variable = null; // or other default value 

Contrôleur:

$this->Model->custom_variable = 'new value'; 

ou

$this->Behavior->custom_variable = 'new value'; 
+0

merci aussi, heureux d'avoir plus d'une option maintenant! :) – Jason

Questions connexes