sfDoctrineGuardPlugin によって処理されるサインイン プロセス中にユーザー カルチャをどのように設定しますか? 各ユーザーは、sfGuardUserProfile テーブルに保存されている優先言語を設定できます。
もともと私は、次のようなことをして関数をオーバーライドすることを考えていexecuteSignin()
ました:
public function executeSignin(sfWebRequest $request)
{
$this->getUser()->setCulture($this->getUser()->getGuardUser()->getProfile()->getLanguage());
parent::executeSignin($request);
}
しかし、親関数が実行される前に GuardUser オブジェクトにアクセスできないため、明らかにそれはできません。
postExectute()
次に、次のような関数を作成することを考えました。
public function postExecute()
{
if($this->getUser()->isAuthenticated()){
//SET USER CULTURE
}
}
ただし、サインイン機能がリダイレクトを実行するため、これは機能しませpostExecute()
ん。実行されることはありません。
ユーザーが常に同じページや同じモジュールにリダイレクトされるとは限らないため、ログイン後に既定のページにカルチャを設定するロジックを配置できません。