<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                {% raw %} # Symfony Flash 消息 > 原文: [http://zetcode.com/symfony/flash/](http://zetcode.com/symfony/flash/) Symfony Flash 消息教程展示了如何在 Symfony 中創建 Flash 消息。 Flash 消息是用于用戶通知的臨時消息。 它們存儲在一個會話中,并且一旦檢索就消失。 ## Symfony Symfony 是一組可重用的 PHP 組件和一個用于 Web 項目的 PHP 框架。 Symfony 于 2005 年發布為免費軟件。Symfony 的原始作者是 Fabien Potencier。 Symfony 受到 Spring 框架的極大啟發。 ## Symfony Flash 示例 在下面的示例中,我們有一個簡單的表單,其中有一個輸入框用于輸入用戶名。 如果用戶輸入的名稱無效(空或僅包含空格),則應用將在表單上方顯示一個閃爍通知。 > **注意**:在我們的應用中,我們有一個 GET 表單。 GET 方法被認為是[安全](https://developer.mozilla.org/en-US/docs/Glossary/safe),因此我們未實現 CSRF 保護。 [Symfony CSRF 教程](/symfony/csrf/)涵蓋了 Symfony 中的 CSRF 保護。 ```php $ composer create-project symfony/skeleton flashmsg ``` 使用`composer`,我們創建一個新的 Symfony 骨架項目。 ```php $ cd flashmsg ``` 我們轉到項目目錄。 ```php $ composer require annotations twig ``` 我們安裝了兩個包:`annotations`和`twig`。 ```php $ composer require server maker --dev ``` 我們安裝了開發 Web 服務器和 Symfony `maker`。 `src/Service/Validate.php` ```php <?php namespace App\Service; class Validate { public function isValid(?string $name): bool { if (!isset($name) || trim($name) === '') { return false; } else { return true; } } } ``` `Validate`服務檢查提供的字符串是否為空或僅包含空格。 > **注意**:在生產應用中,我們使用一些驗證庫,例如 Symfony 的`symfony/validator`或 PHP Rackit 或 Respect。 ```php $ php bin/console make:controller FormController ``` 創建了`FormController`。 `src/Controller/FormController.php` ```php <?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\Routing\Annotation\Route; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use App\Service\Validate; class FormController extends AbstractController { /** * @Route("/", name="index") */ public function index() { return $this->render('form/index.html.twig'); } /** * @Route("/form", name="form") */ public function doForm(Request $request, Validate $valService) { $name = $request->query->get("name"); $validated = $valService->isValid($name); if ($validated) { $msg = sprintf("Hello %s!", $name); return new Response($msg, Response::HTTP_OK, ['content-type' => 'text/plain']); } else { $this->addFlash( 'notice', 'Invalid name entered' ); return $this->redirectToRoute("index"); } } } ``` `FormController`響應根路徑和形式路徑。 ```php /** * @Route("/", name="index") */ public function index() { return $this->render('form/index.html.twig'); } ``` 根路徑返回 HTML 表單。 ```php /** * @Route("/form", name="form") */ public function doForm(Request $request, Validate $valService) { ``` 在`doForm()`方法中,我們注入了`Request`對象和`Validate`服務。 ```php $name = $request->get("name"); $validated = $valService->isValid($name); ``` 我們檢索名稱輸入并對其進行驗證。 ```php $this->addFlash( 'notice', 'Invalid name entered' ); return $this->redirectToRoute("index"); ``` 如果輸入無效,我們將添加帶有`addFlash()`的 Flash 消息,并在`index`路徑上添加確定。 `templates/form/index.html.twig` ```php {% extends 'base.html.twig' %} {% block title %}Home page{% endblock %} {% block stylesheets %} <style> .flash-notice { color: red } </style> {% endblock %} {% block body %} {% for message in app.flashes('notice') %} <div class="flash-notice"> {{ message }} </div> {% endfor %} <form action="/form"> <div> <label>Enter your name:</label> <input type="text" name="name"> </div> <button type="submit">Send</button> </form> {% endblock %} ``` `FormController`返回一個表單頁面。 它包含用戶名的輸入。 ```php {% for message in app.flashes('notice') %} <div class="flash-notice"> {{ message }} </div> {% endfor %} ``` 當應用重定向到此頁面時,我們瀏覽 Flash 消息并將其顯示在表單上方的`div`標簽中。 `templates/base.html.twig` ```php <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>{% block title %}Welcome!{% endblock %}</title> {% block stylesheets %}{% endblock %} </head> <body> {% block body %}{% endblock %} </body> </html> ``` `base.html.twig`模板包含其他模板文件共享的代碼。 它定義了將在子模板中替換的塊。 ```php $ php bin/console server:run ``` 我們運行該應用。 在本教程中,我們在 Symfony 中處理了 Flash 消息。 您可能也對以下相關教程感興趣: [Symfony 簡介](/symfony/intro/), [Symfony 驗證教程](/symfony/validation/), [Symfony 服務教程](/symfony/service/), [Symfony 表單教程](/symfony/form/) , [PHP 教程](/lang/php/)或列出[所有 Symfony 教程](/all/#symfony)。 {% endraw %}
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看