1

まず第一に、私の下手な英語で申し訳ありません。

Laravel と Backbone.js を使用して単純な Web アプリを作成しています。サーバー側では、ランダム データをフェッチするために SQL クエリを生成する方法が 1 つあります。そのデータを保存する必要があるため、静的メンバー変数 (配列) を使用しています。しかし、別のメソッド (という名前のメソッドocijeni) からその静的変数にアクセスしようとすると、配列の値が空になります。

(サーバー側のロジックは Backbone.js で非同期にアクセスされます)。

これが私のコードです:

class TestController extends BaseController {
    static private $odgovori = array();

    public function pitanja() {
        $pitanja = DB::select('select tocnoid,id,jedinstveno,pitanje,pomoc,odgovora,odgovorb,odgovorc from pitanja ORDER BY RAND() LIMIT 15');
        foreach ($pitanja as $pitanje => $value) {
            array_push(self::$odgovori, $value);
        }
    }

    public function ocijeni() {
        if (!Request::ajax()) {
            App::abort();
        } else {
            print_r(self::$odgovori);
        }
    }
}
4

1 に答える 1

3

別の AJAX 呼び出しからページを呼び出している場合、静的変数の値はリセットされます。ページへの各呼び出しは、同じ初期状態になります。

AJAX 呼び出し間でデータを保持したい場合は、セッションを調べるか、データを Cookie に保存する必要があります。

于 2013-05-28T20:31:07.407 に答える