0

このフィルターを考えてみましょう:

public function execute ($filterChain)
{
    if ($this->isFirstCall())
    {
        $loggeduser = array();
        .
        .
        .
        $this->getContext()->getResponse()->setSlot ('loggeduser', $loggeduser);
    }
}

このloggeduser配列をすべてのアクション、さらにはajaxアクションに渡したいです。この変数は、ログに記録されたユーザー情報を格納します。機能が動作しget_slot();ません。これを解決するには?今回はセッションを使用してはなりません。

4

2 に答える 2

4

これは機能するはずです:

$this->getContext()->getRequest()->setParameter('loggeduser', $loggeduser);

于 2013-02-18T18:54:45.970 に答える
0

にはgetSlot()メソッドはありませんsfWebResponsegetSlots()、応答に渡したすべてのスロットの配列を取得できるようになっています。

任意のコントローラーで:

$slots = $this->getResponse()->getSlots();
print_r($slots['loggeduser']);

@Vlad Jula-Nedelcuが述べたように、セッションを使用せず、実際に 1 回のスクリプト実行でコントローラー間で変数を渡すだけでよい場合は、sfContext に保持されている任意のオブジェクトにプロパティを設定できます。

残念ながら Sf 1.4 で。独自のオブジェクトを sfContext に追加することはできません。既に存在するオブジェクトを使用する必要があります。

于 2013-02-20T19:32:54.220 に答える