最終年度のプロジェクトの求人ポータルを作成しています。求職者が特定の欠員に応募するときに、[応募] ボタンをクリックしてユーザーがシステムにログインしているかどうかを確認するときに、セッションを配置する必要があります。彼がログインしている場合、ユーザーは cv を適用してアップロードできます。それ以外の場合は、システムに登録する必要があり、クリックすると適用ページが登録ページにリダイレクトされます。では、どうすればsymfonyでこれを行うことができますか? 「適用」ボタン内でこのセッション部分を実行することは可能ですか..私はsymfonyにあまり慣れていません..助けてください
1176 次
2 に答える
0
sfBasicSecurityUser には、ユーザーが接続されているかどうかを通知する関数があります。
// in template
$sf_user->isAuthenticated();
// in action
$this->getUser()->isAuthenticated();
また、ユーザーをログイン システムにリダイレクトする前に、->getReferer() を使用してリファラーを保存できます。
$request->getReferer();
可能であれば、 sfGuardDoctrinePluginを使用してユーザー管理 (ユーザー、グループ、許可、ログイン、登録など) を処理します。
編集:
したがって、ログインアクション内に次のようなものを追加します。
// store the referer url in the session for a future use, if it's doesn't already exists
if($this->getUser()->getAttribute('referer_url', null, 'login'))
{
$this->getUser()->setAttribute('referer_url', $request->getReferer(), 'login');
}
サインイン アクションで:
// retrieve the referer in session, otherwise the one in request, otherwise redirect to homepage
$signinUrl = $this->getUser()->getAttribute('referer_url', $request->getReferer(), 'login');
$this->getUser()->getAttributeHolder()->remove('referer_url');
return $this->redirect('' != $signinUrl ? $signinUrl : '@homepage');
編集2:
また、カスタム リダイレクトが必要な場合は、ログイン ページへのリダイレクトの前に設定します。
$this->getUser()->setAttribute('referer_url', 'my/custom/url', 'login');
于 2012-05-03T07:41:42.980 に答える
0
そのようにユーザーセッションを手動で保存する場合:
// in action<br>
$this->getUser()->setAttribute('user', $user);
次のようにこのユーザーを確認できます。
// in action
$this->getUser()->getAttribute('user');
次に、ユーザーオブジェクトの存在を確認できます...
于 2012-05-03T08:16:56.100 に答える