2010-08-10 3 views
2

У меня есть один командный массив, и я хочу, чтобы это имя команды везде, где было показано имя команды. Можно создать глобальную функцию, которая может возвращать имя команды, и я вызываю эту функцию из моего представления, это означает, что файл ctp ,Функция вызова с учетом cakephp

ответ

0

Вы можете добавить в ваш /app/config/bootstrap.php файл что-то вроде:

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

Тогда везде, где вы можете получить, что массив:

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

и использовать его.

+0

Есть ли причина, по которой вы его записываете в объект конфигурации? Обычно я обычно определяю вещи в файле начальной загрузки как константы, например, define (TEAMS, array (...)); –

+0

Я не думаю, что можно определить массив как константу. Константы могут оценивать только скалярные значения (предупреждение на экране). Прочтите описание здесь http://book.cakephp.org/view/42/The-Configuration-Class, и вы увидите, что команда торта рекомендует использовать его вместо переменных и констант. –

3

Существует несколько подходов к этому. То, что я не могу сказать из вашего описания, - именно то, что вы ищете. Если это просто создать массив элементов, который доступен в ваших взглядах, я бы поставил его в app_controller.php

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

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

Тогда, по вашему мнению, вы можете получить доступ к массиву переменным: $ команд

Если вы хотите только позвонить командам на определенные виды, возможно, не стоит устанавливать эту переменную для ВСЕГО. Вы можете обойти это, установив функцию в контроллере приложения.

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

Затем положить вместе элемент, который будет вызывать эту функцию: просмотров/элементы/team.ctp

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

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

Тогда вы можете просто вызвать элемент из вашей точки зрения:

<?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); 
?> 
Смежные вопросы