$_POST データをリッスンするために、Signin コントローラーにこれを持っています。
<?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');
}
}
}
}
しかし、フォームを送信すると、「資格情報が間違っています」というフラッシュ メッセージが表示されません。ページがリロードされるだけです。
私は base.volt テンプレートにこれを持っています:
<body>
{{ flash.output() }}
{% block content %}
{% endblock %}
</body>
if($_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;
});
if($_POST) 条件内でフラッシュメッセージが機能しない理由は何ですか?