私はここ数日間、これに苦労しました。ZfcUser 構成にはuse_redirect_parameter_if_present
設定が含まれていますが、ドキュメントにはこれをどのように使用するかについての例はありません。私の方法がしっかりしているかどうかはわかりませんが、これを機能させるために私がしたことは次のとおりです。このメソッドは forward を使用するため、URL を保持することに注意してください。forward を使用せずにこれを行う別の方法がわかりません。
zfcuser 構成ファイルで、そのuse_redirect_parameter_if_present
設定を に設定しtrue
ます。これにより、ZfcUser のログイン アクションがredirect
要求内のパラメーターを検索します。これを使用して、認証が成功した後、ユーザーを指定された場所に戻します。
次に、ユーザーがログインしていることを確認したいコントローラーで、次のようにします。
if (!$this->zfcUserAuthentication()->hasIdentity()) {
// Build the redirect URL using the route to which we want
// the user returned.
$redirect = $this->url()->fromRoute('your route', array(
'optional-route-param' => 1234
));
// Set the redirect URL in the request so that ZfcUser can
// pick it up. This is the key.
$this->getRequest()->getQuery()->set('redirect', $redirect);
// Use ZfcUser's login action rather than its authentication
// action.
return $this->forward()->dispatch('zfcuser', array(
'action' => 'login'
));
}
それが役立つことを願っています。これを機能させるのに問題がある場合は、コードを投稿する必要があるかもしれません。