Zend_Session_NamespaceがZend_Authとどのように統合されているかを理解するのに苦労しています。ログインページを認証するためのアクションとして使用しているこのメソッドがあります。これは正しく機能しており、/monthlyビューにリダイレクトされます。
public function authAction(){
$request = $this->getRequest();
$registry = Zend_Registry::getInstance();
$auth = Zend_Auth::getInstance();
$DB = $registry['DB'];
$authAdapter = new Zend_Auth_Adapter_DbTable($DB);
$authAdapter->setTableName('users')
->setIdentityColumn('UserName')
->setCredentialColumn('Password');
// Set the input credential values
$uname = $request->getParam('UserName');
$paswd = $request->getParam('Password');
$authAdapter->setIdentity($uname);
$authAdapter->setCredential($paswd);
// Perform the authentication query, saving the result
$result = $auth->authenticate($authAdapter);
// TRYING TO SET THE NAMESPACE
$this->session = new Zend_Session_Namspace('UserName');
if($result->isValid()){
$data = $authAdapter->getResultRowObject(null,'password');
$auth->getStorage()->write($data);
$this->_redirect('/monthly');
}else{
$this->_redirect('/login');
}
}
ただし、UserNameをZend_sessionとして保存し、月次コントローラーから呼び出すことができる必要があります。これを実行しようとすると空白の画面が表示されるため、正しく実行していません。
public function indexAction()
{
$this->view->userName = Zend_Session_Namespace('UserName');
}