CakePHP: Как получить доступ к $ this-> set (array ('fruit' => 'orange', 'vegetable' => 'kale')); в контроллере - PullRequest
0 голосов
/ 09 августа 2010

Я новичок в CakePHP и ищу какой-то код. Я скачал функцию, которая выглядит следующим образом:

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

В коде к переменным массива обращаются в другой функции контроллера с помощьюэтот метод:

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

То, что я хотел бы сделать, получить доступ к переменным массива в той же функции в контроллере, где выполняется оператор $ this-set (), и кажется, что я должен иметь возможностьсделать это только с одной строкой кода.Я пробовал все следующее:

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

И все эти броски разбора, неопределенной переменной или переменной не найдены ошибки.Каков был бы самый простой / самый правильный способ доступа к переменной внутри той же функции в контроллере?

Спасибо,

Джонатан

1 Ответ

1 голос
/ 09 августа 2010

Функция $ this-> set () в контроллере используется для передачи переменных из контроллера в представление.

Т.е.

Если у вас есть:

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

Затем в связанном представлении вы можете получить доступ к массиву напрямую как

print_r ($ fruit);

Если вы хотите использовать переменную fruit в контроллере, вам нужно назначить ее дляvar ie:

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

Но ваш вопрос не очень ясен, чего вы хотите достичь с этим.

...