2010-08-10 3 views
2

J'ai un tableau d'équipe et je veux que le nom de l'équipe chaque endroit pour montrer le nom de l'équipe.Il est possible de construire une fonction globale qui peut retourner le nom de l'équipe et j'appelle cette fonction .Fonction d'appel en vue de cakephp

Répondre

0

Vous pouvez ajouter dans votre fichier /app/config/bootstrap.php quelque chose comme:

Configure::write('teams', array('team1', 'team2')); 

Alors partout où vous pouvez obtenir ce tableau avec:

$teams = Configure::read('teams'); 

et de l'utiliser.

+0

Y a-t-il une raison pour laquelle vous l'écrivez dans l'objet de configuration? Habituellement, je définis simplement les choses dans le fichier bootstrap comme des constantes, par exemple, define (TEAMS, array (...)); –

+0

Je ne pense pas qu'il soit possible de définir un tableau comme une constante - Les constantes ne peuvent évaluer que les valeurs scalaires (avertissement à l'écran). Lisez la description ici http://book.cakephp.org/view/42/The-Configuration-Class et vous verrez que l'équipe du gâteau encourage à l'utiliser à la place des variables et des constantes. –

3

Il existe plusieurs approches pour cela. Ce que je ne peux pas dire de votre description est exactement ce que vous cherchez. Si elle est simplement de créer un tableau d'éléments qui est accessible à votre point de vue, je le mettrais dans app_controller.php

var $teams = array('team1', 'team2', 'team3'); 

beforeFilter() { 
    $this->set('teams', $this->teams); 
} 

Alors à votre avis, vous pouvez accéder au tableau par la variable: équipes $

Si vous souhaitez uniquement appeler des équipes sur certaines vues, il peut ne pas être judicieux de définir cette variable pour TOUT. Vous pouvez contourner le problème en configurant une fonction dans le contrôleur d'application.

function get_teams_array() { 
    $teams = array('team1', 'team2', 'team3'); 
    return $teams; 
} 

ensuite mis en place un élément qui appelle cette fonction: vues/éléments/team.ctp

<?php 
$teams = $this->requestAction(
      array('controller' => 'app', 'action' => 'teams'), 
      array('return') 
     ); 

/** process team array here as if it were in the view **/ 
?> 

Ensuite, vous pouvez simplement appeler l'élément de votre point de vue:

<?php echo $this->element('team'); ?> 
5
please try this for west: 

<?php 
// controller name like app,users 
// action name like getdata should be in controller 
// and you can send parameter also 
$output = $this->requestAction('controllerName/actionName/'.$parameter); 
?> 
Questions connexes