我在我的Signin控制器中有这个来监听$ _POST数据:
<?php
use \Phalcon\Tag;
class SigninController extends BaseController {
public function indexAction()
{
Tag::setTitle('Login');
// if submit
if ($_POST) {
$user = Users::findFirst([
"email = :email: AND password = :password:",
"bind" => [
"email" => $this->request->getPost('email'),
"password" => $this->request->getPost('password')
]
]);
if ($user) {
$this->session->set('id', $user->id);
$this->session->set('role', $user->role);
$this->response->redirect("account");
} else {
$this->flash->error('Wrong credentials!');
$this->response->redirect('signin');
}
}
}
}
但是闪存消息带有&#34;错误的凭据&#34;我提交表格时没有显示。 该页面只是重新加载。
我在base.volt模板中有这个:
<body>
{{ flash.output() }}
{% block content %}
{% endblock %}
</body>
除了($ _ POST)条件外,并且它正在为所有事情工作。
我在我的引导文件中有这个:
$di->set('flash', function() {
$flash = new \Phalcon\Flash\Session([
'error' => 'alert alert-danger',
'success' => 'alert alert-success',
'notice' => 'alert alert-info',
'warning' => 'alert alert-warning',
]);
return $flash;
});
知道为什么flash消息在if($ _ POST)条件下无效?
答案 0 :(得分:0)
我经过测试!
1.bootstrap文件
$di->set('flash', function(){
return new Phalcon\Flash\Session(array(
'error' => 'alert alert-error',
'success' => 'alert alert-success',
'notice' => 'alert alert-info',
));
});
控制:
$this->flash->error('Some Message');
$this->response->redirect('signin/index');
查看:
<?php
echo $this->flash->output();
?>
2.bootstrap文件
$di->set('flash', function(){
return new Phalcon\Flash\Direct(array(
'error' => 'alert alert-error',
'success' => 'alert alert-success',
'notice' => 'alert alert-info',
));
});
控制:
$this->flash->error('Jump to other page');
$this->dispatcher->forward(array('controller' => 'signin', 'action' => 'index'));
查看:
<?php
echo $this->getContent();
?>
答案 1 :(得分:0)
我遇到了同样的问题!
事实上,我们的问题与 if($ _POST)声明没有任何关系。
我们认为导致这个问题。要解决此问题,在设置Flash消息之前就像禁用视图一样简单:
$this->view->disable();
$this->flash->error('Wrong credentials!');
$this->response->redirect('signin');
答案 2 :(得分:0)
两种方法: 使用$ this-&gt; flash-&gt;错误('Some Message'); 视图:
的getContent(); ?&GT;使用$ this-&gt; flashSession-&gt;错误('Some Message'); 视图:
flashSession-&gt; output()?&gt;