bonjour , je veux appeler un controleur dasn un autre controleur

App::import('Controller', 'Graphs');
class ClausesController extends AppController {
///1ere fontion//
$Graphs = new GraphsController();
$Graphs->constructClasses();

ça me donne une erreur Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION

au niveau de $Graphs = new GraphsController();
si quelqu 'un connait une solution ,et merci d 'avance

5 réponses


Hi,

Je ne connais pas ton code, ni ce que tu fais, mais la plupart du temps, c'est un problème de conception d'appeler un Controller dans un autre... Au pire des cas, il faut utiliser le requestAction()

Exemple, d'après le nom Graph, je me dis que ca gère des graphiques, dans ce cas ca serait bien de le sortir en Composant. Et comme ca pouvoir l'appeler dans les différents controller que tu souhaites.

@+

Keisuke a tout dit :P

Bonjour,

Comme le dit Keisuke utilise requestAction :

$this->requestAction('controller'=>'Graphs','action'=>'tonAction');

Sinon j'ai jamais essayé mais tu peux créer ta classe en faisant un extends de ton Autre controller :

class ClausesController extends GraphsController{

En faisant ça je pense que tu auras accès au action (fonction) du controller Graphs dans le controller Clauses.
Mais je n'ai pas testé cette solution, ce n'est qu'une idée.
Donc test tout ça et fait nous un retour.

Cordialement

Tu as le droit d'appeler un autre Model mais il vaut mieux éviter d'appeler un Controller. Peux tu exporter la logique de ton action dans une méthode du Model pour pouvoir l'exporter ?

merci pour vos réponses , au fait j'utilise JPgraph et j 'essai de l 'appeler dans un Controller (Clauses) donc j 'ai créer un Controller GraphsController sans Model , je vais essai de creer un Model de graph et tenter le coup :)