0

最終年度のプロジェクトの求人ポ​​ータルを作成しています。求職者が特定の欠員に応募するときに、[応募] ボタンをクリックしてユーザーがシステムにログインしているかどうかを確認するときに、セッションを配置する必要があります。彼がログインしている場合、ユーザーは cv を適用してアップロードできます。それ以外の場合は、システムに登録する必要があり、クリックすると適用ページが登録ページにリダイレクトされます。では、どうすればsymfonyでこれを行うことができますか? 「適用」ボタン内でこのセッション部分を実行することは可能ですか..私はsymfonyにあまり慣れていません..助けてください

4

2 に答える 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 に答える