Redirect 如何使用ZfcUser';什么是登录Widget?
在我的Zend Framework 2应用程序中,我使用的是,由提供的视图助手。此视图帮助器旨在将登录表单嵌入到另一个页面上Redirect 如何使用ZfcUser';什么是登录Widget?,redirect,login,widget,zend-route,zfcuser,Redirect,Login,Widget,Zend Route,Zfcuser,在我的Zend Framework 2应用程序中,我使用的是,由提供的视图助手。此视图帮助器旨在将登录表单嵌入到另一个页面上 <?php echo $this->zfcUserLoginWidget(); ?> 如果输入的登录数据无效,则login.phtml默认显示一条错误消息: <?php echo $this->formElementErrors($form->get('identity')) ?> 更改此重定向路由会导致错误消息丢失:前面提到
<?php echo $this->zfcUserLoginWidget(); ?>
如果输入的登录数据无效,则login.phtml默认显示一条错误消息:
<?php echo $this->formElementErrors($form->get('identity')) ?>
更改此重定向路由会导致错误消息丢失:前面提到的formElementErrors函数仍被调用,但不再有可用消息
问题:
- 我如何告知LoginWidget输入了无效的登录数据,并且页面不仅被重新加载了
如果是这样的话,我想将输入字段涂成红色…有同样的问题,我用use Zend\Session\Container解决了这个问题,生成了我自己的消息 修改: Zendskletonapplication\vendor\zf commons\zfc user\src\ZfcUser\Controller\UserController.php 加 在UserController.php的登录操作中添加/更改
//open session
$session = new Container('loginmsg');
if (!$form->isValid()) {
//$this->flashMessenger()->setNamespace('zfcuser-login-form')->addMessage($this->failedLoginMessage);
//$this->flashMessenger()->addMessage('not working');
//return $this->redirect()->toUrl($this->url()->fromRoute(static::ROUTE_LOGIN).($redirect ? '?redirect='.$redirect : ''));
$session->loginmsg = 'Username and password do not match.'; //store loginmsg
return $this->redirect()->toRoute('home');
} else {
$session->loginmsg = "";
}
还要修改authenticateAction
if (!$auth->isValid()) {
$this->flashMessenger()->setNamespace('zfcuser-login-form')->addMessage($this->failedLoginMessage);
$adapter->resetAdapters();
//open session
$session = new Container('loginmsg');
$session->loginmsg = 'Username and password do not match.'; //store loginmsg
return $this->redirect()->toUrl($this->url()->fromRoute(static::ROUTE_LOGIN)
. ($redirect ? '?redirect='.$redirect : ''));
}
在主路线中(索引操作):
从索引的角度来看
<?php if(!(empty($loginmsg))):?>
<div class="alert alert-danger" role="alert"><?php echo $loginmsg;?></div>
<?php endif; ?>
为我工作(起初),向我发送消息以获取更多信息
亲切问候,,
大卫
//open session
$session = new Container('loginmsg');
if (!$form->isValid()) {
//$this->flashMessenger()->setNamespace('zfcuser-login-form')->addMessage($this->failedLoginMessage);
//$this->flashMessenger()->addMessage('not working');
//return $this->redirect()->toUrl($this->url()->fromRoute(static::ROUTE_LOGIN).($redirect ? '?redirect='.$redirect : ''));
$session->loginmsg = 'Username and password do not match.'; //store loginmsg
return $this->redirect()->toRoute('home');
} else {
$session->loginmsg = "";
}
if (!$auth->isValid()) {
$this->flashMessenger()->setNamespace('zfcuser-login-form')->addMessage($this->failedLoginMessage);
$adapter->resetAdapters();
//open session
$session = new Container('loginmsg');
$session->loginmsg = 'Username and password do not match.'; //store loginmsg
return $this->redirect()->toUrl($this->url()->fromRoute(static::ROUTE_LOGIN)
. ($redirect ? '?redirect='.$redirect : ''));
}
$session = new Container('loginmsg');
$loginmsg = strip_tags($session->loginmsg);
$session->getManager()->getStorage()->clear('loginmsg');
$this->layout('layout/index');
return new ViewModel(array(
'loginmsg' => $loginmsg,
));
<?php if(!(empty($loginmsg))):?>
<div class="alert alert-danger" role="alert"><?php echo $loginmsg;?></div>
<?php endif; ?>