我正在学习phalcon:虽然仍然是一个粗糙的初学者。我想为我的网络应用创建一个注册部分。目前我有:
名为AuthController的控制器 with actions:index [登录逻辑],注册[注册逻辑] 登录viewviews / auth / index.phtml。 注册视图为views / auth / register.phtml,表单发布到auth / register
还使用Twitter Bootstrap作为前端。
我目前正在尝试验证密码。如果不相等,则显示闪烁消息。
注册行动准则:
if($this -> request -> isPost())
{
$name = $this -> request -> getPost('fullname');
$username = $this -> request -> getPost('email');
$password = $this -> request -> getPost('password');
$vpassword = $this -> request -> getPost('cpassword');
if($password != $vpassword)
{
$this -> flash -> error("The passwords doesn't match!!!");
//return $this -> view -> pick('register'); //Show page/ no error msg
/*return $this->dispatcher->forward( //show error/ no page / cyclic routing
[
'controller' => 'auth',
'action' => 'register'
]
);*/
// Make a full HTTP redirection
//return $this->response->redirect('auth/register');
}
目前,如果我使用:
return $this -> view -> pick('register');
我回来了,但没有flash错误消息
而且,如果我使用;
return $this->dispatcher->forward(
[
'controller' => 'auth',
'action' => 'register'
]
);
我多次显示错误消息,没有查看。我认为循环路由正在发生,但是isPost()检查不应该阻止它吗?如果是POST,则密码字段中的值将相同。
Any ideas?
答案 0 :(得分:0)
在您的进样器中设置闪光灯之前,您的会话已设置好了吗? 初始化会话和闪存:
/**
* Start the session
*/
$di->set('session', function() {
$session = new \Phalcon\Session\Adapter\Files();
$session->start();
return $session;
}, true);
/**
* Register the flash service with custom CSS classes
*/
$di->set('flash', function() {
$flash = new \Phalcon\Flash\Session([
'error' => 'alert alert-danger',
'success' => 'alert alert-success',
'notice' => 'alert alert-info',
]);
return $flash;
});