symfony 4-如何在5秒后清除Flash消息?

时间:2018-10-23 02:31:53

标签: javascript symfony symfony-forms symfony4 symfony-3.4

渲染树枝模板时,我在控制器中设置了Flash消息。我正在检查用户电子邮件,如果数据库闪存中存在该电子邮件将为绿色,否则为红色。 我想在5秒后清除闪烁消息,但idk怎么办。

twig.html

{#=======================(    )===========================#}
{#====================(          )========================#}
{#=================( flash messages )=====================#}
{#====================(          )========================#}
{#=======================(    )===========================#}

{% for message in app.flashes('notice') %}
    {% if var %}    
        <div class="flash-notice" style="background-color:red;">
            {{ message }}
        </div>
    {% else %}
        <div class="flash-notice" style="background-color:green;">
            {{ message }}
        </div>
    {% endif %}
{% endfor %}

controller.php

/**
 * @Route("/find_email", name="find_email")
 */
public function FindEmail(Request $request,EventDispatcherInterface $eventDispatcher)
{
    $user = new User();
    $email = $request->request->get("inputEmail", "valeur par défaut si le champ n'existe pas");

    $user = $this->getDoctrine()
        ->getRepository(User::class)
        ->findOneBy(['email' => $email]);
    ////////////////////////////////////
    if (!$user) {
        $var=true;
        $this->addFlash("notice", "This is an error message");  
    } else {
        $user_=$user;
        $var=false;
        $this->addFlash("notice", "This is a success message");
    }

    return $this->render('Security/reset_password.html.twig',[
        'form'=> $email,
        'var'=>$var,
    ]);
}

enter image description here

1 个答案:

答案 0 :(得分:1)

您需要编写一个JavaScript函数,以在页面加载五秒钟后删除.flash-notice