0

チャートをレンダリングする関数があります:

function testSave(){
    $this->_renderChart(156);
}

これは私がテストに使用しています。testSave() 関数のビューには、_renderChart(156)呼び出しの内容が表示されます。しかし、私がするとき

function testSave(){
    $this->_renderChart(156);
    $this->_renderChart(153);
}

次に、 $this->_renderChart(153)呼び出しの内容を表示するだけですが、の内容は表示しません$this->_renderChart(156)

関数の_renderChart($chart_id)説明:

function _renderChart($chart_id = null){
    if($chart_id == null)
        return false;
    //some magic...
    $this->layout = 'dummyfolder\dummy_layout_name';
}

_renderChart の関数のビュー内には、グラフの画像を.pngサーバー上に保存する ajax による JavaScript コードがあります。ただし、2 回呼び出すと$this->renderChart()、最後の出現のみがレンダリングされ、2 つではなく 1 つの画像のみが保存されます。

4

1 に答える 1

0

うーん、多分それはあなたが'this'の関数を連続して呼び出しているからでしょう。次に、$thisが常に最後の呼び出しであることを意味します。呼び出しを変数に初期化してから変数を返すのはどうですか。このようなもの:

$var1 = $this->_renderChart(156);
$var2 = $this->_renderChart(153);

return array($var1, $var2);

編集:

$array = array("156", "153");
$this->_renderChart($array);

そして、このようなもの:

function _renderChart($chart_id = null){
    if($chart_id == null)
        return false;
     foreach($chart_id as $key => $value) {
        //some magic...
     }
     $this->layout = 'dummyfolder\dummy_layout_name';
}
于 2012-12-29T23:14:55.863 に答える