<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                {% raw %} # PHP Respect 驗證教程 > 原文: [https://zetcode.com/php/respectvalidation/](https://zetcode.com/php/respectvalidation/) PHP Respect 驗證教程展示了如何使用 Respect 驗證包來驗證 PHP 值。 ## Respect 驗證 Respect 驗證是一個 PHP 獨立驗證庫。 ## 安裝 ```php $ composer require respect/validation $ composer require tightenco/collect ``` 我們安裝了 Respect 驗證包和 Laravel 的集合包。 ## Respect 驗證簡單示例 在第一個示例中,我們展示了如何進行非常簡單的驗證。 `simple.php` ```php <?php require('vendor/autoload.php'); use Respect\Validation\Validator as v; $name = "John Doe"; $r = v::alnum()->validate($name); if ($r) { echo "Validation passed"; } else { echo "Validation failed"; } ``` 該示例驗證一個值。 ```php use Respect\Validation\Validator as v; ``` 我們包括驗證器。 ```php $r = v::alnum()->validate($name); ``` `alnum`是一個允許字母數字值的驗證規則。 它還允許有空間。 `validate()`方法將驗證規則,并返回指示失敗或成功的布爾值。 ```php if ($r) { echo "Validation passed"; } else { echo "Validation failed"; } ``` 基于返回的值,我們顯示驗證消息。 ```php $ php simple.php Validation passed ``` 這是輸出。 ## 新增字符 我們可以在規則中添加一個字符。 `add_character.php` ```php <?php require('vendor/autoload.php'); use Respect\Validation\Validator as v; $name = "Vane-Tempest-Stewart"; $r = v::alnum('-')->validate($name); if ($r) { echo "Validation passed"; } else { echo "Validation failed"; } ``` 在示例中,我們在`alnum`規則中添加了破折號。 ```php $name = "Vane-Tempest-Stewart"; ``` 一些名稱可能包含破折號。 ```php $r = v::alnum('-')->validate($name); ``` 我們在`alnum`規則中添加破折號。 ## Respect 驗證鏈接規則 規則可以鏈接在一起。 `chaining.php` ```php <?php require('vendor/autoload.php'); use Respect\Validation\Validator as v; $name = "John"; $r = v::alnum()->length(4, null)->validate($name); if ($r) { echo "Validation passed"; } else { echo "Validation failed"; } ``` 在示例中,我們有兩個規則:`alnum`和`length`。 ```php $r = v::alnum()->length(4, null)->validate($name); ``` 該名稱只能包含字母數字字符,并且必須至少包含四個字符。 ## Respect 驗證合并規則 規則的組合類似于鏈接技術。 `Rules\AllOf`用于組合多個規則。 `combine_rules.php` ```php <?php require('vendor/autoload.php'); use Respect\Validation\Validator as v; use Respect\Validation\Rules; $name = "John"; $nameValidator = new Rules\AllOf( new Rules\Alnum(), new Rules\Length(5, 40) ); $r = $nameValidator->validate($name); if ($r) { echo "Validation passed"; } else { echo "Validation failed"; } ``` 該示例將兩個驗證規則與`Rules\AllOf`結合在一起。 ## Respect 驗證斷言函數 `validate()`方法返回一個布爾值。 `assert()`方法返回完整的驗證報告。 `assert_fun.php` ```php <?php require('vendor/autoload.php'); use Respect\Validation\Validator as v; use Respect\Validation\Exceptions\NestedValidationException; $name = ""; $validator = v::alnum()->notempty(); try { $validator->assert($name); } catch(NestedValidationException $ex) { $coll = collect($ex->getMessages()); $messages = $coll->flatten(); foreach ($messages as $message) { echo $message . "\n"; } } ``` 該示例對驗證規則使用`assert()`方法,并顯示錯誤消息。 ```php $validator->assert($name); ``` 我們使用`assert()`驗證名稱值。 ```php $coll = collect($ex->getMessages()); $messages = $coll->flatten(); foreach ($messages as $message) { echo $message . "\n"; } ``` 借助 Laravel 的集合,我們顯示了錯誤消息。 ```php $ php assert_fun.php "" must contain only letters (a-z) and digits (0-9) "" must not be empty ``` This is the output. ## Respect 驗證范圍 `between`規則驗證范圍,包括整數,字符和日期。 `between_rule.php` ```php <?php require('vendor/autoload.php'); use Respect\Validation\Validator as v; $age = 34; $r = v::intVal()->between(18, 99)->validate($age); if ($r) { echo "Age validation passed\n"; } else { echo "Age validation failed\n"; } $char = 'g'; $r = v::stringType()->between('a', 'c')->validate($char); if ($r) { echo "Letter validation passed\n"; } else { echo "Letter validation failed\n"; } $myDate = '2013-01-01'; $r = v::date()->between('2009-01-01', '2019-01-01')->validate($myDate); if ($r) { echo "Date validation passed\n"; } else { echo "Date validation failed\n"; } ``` 該示例使用`between`規則。 ```php $r = v::intVal()->between(18, 99)->validate($age); ``` 此規則檢查`$age`變量是否在 18 到 99 之間。 ```php $r = v::stringType()->between('a', 'c')->validate($char); ``` 此規則檢查`$char`變量是否在'a'和'c'字符之間。 ```php $r = v::date()->between('2009-01-01', '2019-01-01')->validate($myDate); ``` 該規則檢查`$myDate`變量是否在兩個指定的日期之間。 ## Respect 驗證對象 對象屬性使用`attribute()`進行驗證。 `user.php` ```php <?php class User { private $name; private $email; public function getName() : string { return $this->name; } public function setName($name) : void { $this->name = $name; } public function getEmail() : string { return $this->email; } public function setEmail($email) : void { $this->email = $email; } } ``` 這是`user.php`。 `validate_object.php` ```php <?php require('vendor/autoload.php'); require_once('user.php'); use Respect\Validation\Validator as v; use Respect\Validation\Exceptions\NestedValidationException; $user = new User(); $user->setName('Jo'); $user->setEmail('johndoe#gmail.com'); $userValidator = v::attribute('name', v::alnum()->length(4, null)) ->attribute('email', v::email()); try { $userValidator->assert($user); } catch(NestedValidationException $ex) { $coll = collect($ex->getMessages()); $messages = $coll->flatten(); foreach ($messages as $message) { echo $message . "\n"; } } ``` 該示例驗證`User`類的屬性。 ```php $userValidator = v::attribute('name', v::alnum()->length(4, null)) ->attribute('email', v::email()); ``` 這些是用戶對象屬性的規則。 ```php $ php validate_object.php name must have a length greater than 4 email must be valid email ``` This is the output. ## 自定義消息 我們可以提供自定義驗證消息。 `custom_message.php` ```php <?php require('vendor/autoload.php'); use Respect\Validation\Validator as v; use Respect\Validation\Exceptions\NestedValidationException; $name = ""; $validator = v::alnum()->notEmpty()->setName('name'); try { $validator->assert($name); } catch(NestedValidationException $ex) { $errors = $ex->findMessages([ 'alnum' => '{{name}} must contain only letters and digits', 'notEmpty' => '{{name}} must not be empty' ]); $coll = collect($errors); $messages = $coll->flatten(); foreach ($messages as $message) { echo $message . "\n"; } } ``` 該示例添加了兩個自定義消息。 ```php $validator = v::alnum()->notEmpty()->setName('name'); ``` 使用`setName()`方法,我們為模板占位符設置了一個值。 ```php $errors = $ex->findMessages([ 'alnum' => '{{name}} must contain only letters and digits', 'notEmpty' => '{{name}} must not be empty' ]); ``` 在這里,我們提供自定義錯誤消息。 ```php $ php custom_message.php name must contain only letters and digits name must not be empty ``` This is the output. 您可能也對以下相關教程感興趣: [PHP Rakit 驗證教程](/php/rakitvalidation/), [Valitron 教程](/php/valitron/), [PHP PDO 教程](/php/pdo/), [Twig 教程](/php/twig/), [PHP 文件系統函數](/articles/phpfilesystemfunctions/), [PHP 教程](/lang/php/)。 在本教程中,我們使用了 PHP Respect 驗證庫來驗證值。 {% 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>

                              哎呀哎呀视频在线观看