cakephp, как хранить переменные для повторного использования внутри других функций? - PullRequest
0 голосов
/ 04 октября 2011

У меня есть контроллер с несколькими функциями, в которых есть переменная. Я хотел бы получить доступ к этим переменным из другой функции. Есть идеи?

class RoomsController extends AppController {

public $helpers = array('Js' => 'Jquery');
public $components = array('RequestHandler');

function test1(){
        $balcony = $_REQUEST['qwe'];
        $this->set('qwe',$qwe);
}
function test2() {
        $occy = $_REQUEST['wer'];
        $this->set('wer',$wer);
}

function test3() {
        $deck = $_REQUEST['ert'];
        $this->set('ert',$ert);
}

function success() {
    // i want to use $qwe, $wer and $ert here   
}

есть идеи как это сделать? я должен установить глобальные переменные public $qwe;?

спасибо

Ответы [ 2 ]

2 голосов
/ 04 октября 2011

Вы можете создать свойства контроллера, но это нарушит структуру фреймворка, поэтому я предлагаю использовать для этой цели класс Configuration, вы можете хранить значения переменных и получать их, используя этот класс, вот документация:

http://book.cakephp.org/view/42/The-Configuration-Class

Вы можете хранить переменные в сеансе, если вам нужны их значения после перенаправления:

$this -> Session -> write("variable", "value");

и получить:

$this -> Session -> read("variable");
1 голос
/ 04 октября 2011

Вы можете сделать с использованием сеанса CakePHP

$this->Session->write('qwe', $qwe);\\ in test1

$qwe= $this->Session->read('qwe'); \\ in sucess

http://book.cakephp.org/view/1312/write

Хотя в коде много ошибок и неясностей.

function test1(){
    $balcony = $_REQUEST['qwe'];
    $this->set('qwe',$qwe);            
}

Здесь вы принимаете значение запроса в $balcony, когда вы устанавливаете qwe с помощью $qwe. И вы делаете одно и то же во всех функциях, я думаю, вы должны это проверить.

Также как deceze сказал, что вы не используете функцию потока успеха должным образом.

...