0

CakePHP 2.4.1 と PHP 5.5.3 を実行しています。

グローバル変数を作成/書き込み/アクセスする方法についてhereを読みましたが、うまくいきません。私はこのようなことをしています:

class SploopsController extends AppController {
    public $crung;

    public function process() {
        $this->crung = 'zax';
    }

    public function download() {
        $this->response->body($this->crung);
        $this->response->type('text/plain');
        $this->response->download('results.txt');
        return $this->response;
    }
}

しかし、ダウンロードされたファイルresults.txtは空です。つまり$this->crung、空です。$this->crung(単純な文字列に置き換えると、'Granjo'意図したとおりに機能します。) 何が問題なのか知っている人はいますか?

さらに、Configure::write と Configure::read も機能しません (コントローラーの関数内でそれぞれを呼び出した場合)。

コンテキストは次のとおりです。process() でクエリの結果を含む配列を作成し、それらを process.ctp に表示します。これらの結果を、よりテキストに適した形式でテキスト ファイルにダウンロードできるボタンが必要です。したがって、process() で変更してから download() でアクセスできるグローバル配列を作成したいと考えています。

ありがとう!

4

2 に答える 2

0

以下のように、process()使用する前に関数を呼び出す必要があります$this->crung

public function process() {
    $this->crung = 'zax';
}

public function download() {
    $this->process();
    $this->response->body($this->crung);
    $this->response->type('text/plain');
    $this->response->download('results.txt');
    return $this->response;
}

それ以外の場合は、関数beforeFilter()の前に呼び出される関数を使用できますdownload()。これは、値を割り当てる必要がある場合に便利です

public function beforeFilter()
{
     $this->crung = 'zax';
}
于 2013-11-07T04:59:52.417 に答える