PHP の使用や JS でのアラートのように、TWIG ファイルで $_GET パラメータを使用するにはどうすればよいですか。
URI-> ?comment=追加...
TWIGでは、
    if($_GET['comment'] == "added"){
     ...echo '<script>alert("in TWIG file!");</script>';
    }
    PHP の使用や JS でのアラートのように、TWIG ファイルで $_GET パラメータを使用するにはどうすればよいですか。
URI-> ?comment=追加...
TWIGでは、
    if($_GET['comment'] == "added"){
     ...echo '<script>alert("in TWIG file!");</script>';
    }
    本当に達成しようとしていることに応じて、確認メッセージを表示する "Symfony の方法" は "Flash Messages" を使用することです:
あなたのController.php:
public function updateAction()
{
    $form = $this->createForm(...);
    $form->handleRequest($this->getRequest());
    if ($form->isValid()) {
        // do some sort of processing
        $this->get('session')->getFlashBag()->add(
            'notice',
            'Your changes were saved!'
        );
        return $this->redirect($this->generateUrl(...));
    }
    return $this->render(...);
}
あなたの TwigTemplate.twig:
{% for flashMessage in app.session.flashbag.get('notice') %}
    <div class="flash-notice">
        {{ flashMessage }}
    </div>
{% endfor %}
このようにして、複数の利点があります。
このトピックに関する公式ドキュメントを参照してください。
「正しい」解決策は、クエリ文字列をオンにするのではなく、コントローラーを使用して Twig に機能を提供することです。これにより、より堅牢になり、より優れたセキュリティが提供されます。
コントローラ:
function someAction()
{
    $params = array('added' => false);
    if( /* form logic post */ )
    {
          //some logic to define 'added'
          $params['added'] = true;
    }
    $this->render('template_name', $params);
}
見る:
{% if added %}
    <script>alert('added');</script>
{% endif %}
理由は、これがより安全であり (URL を参照するだけではアラートをトリガーできない)、コントローラー内のすべてのビジネス ロジックを維持し、エラーを処理することもできるからです (たとえば、foo を参照する場合)。 php?comment=added で、コメントが追加されていないというエラーが発生した場合でも、ユーザーはアラートを受け取ります。