在過去的幾天裏,我自己一直在努力。 ZfcUser配置包括一個use_redirect_parameter_if_present
設置,但文檔沒有給出任何關於如何使用這個設置的例子。我不知道我的方法是否可靠,但是這是我做得到的。請注意,此方法保留了URL,因爲它使用了轉發。我不確定另一種方式來執行此操作而不使用轉發。
在您的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'
));
}
我希望幫助。如果你有問題得到這個工作,你可能需要發佈一些代碼。
我寧願將鏈接保存到用戶想要訪問的會話,並且成功登錄後重定向到該頁面。 – motivast
我同意kierzniak。我會在會話中保存路由名稱和參數,重定向到登錄並重定向回此路由信息。這顯然不會對POST請求起作用。 –
你們都認爲保留網址會更好 - 這很公平,但我如何才能讓登錄重定向回來?一旦登錄(它是內置用戶的配置文件頁面),它當前會進入/用戶。 – Shoreline