CakePHP創(chuàng)建驗證器

2018-11-29 16:49 更新

驗證器可以通過在控制器中加入以下代碼被創(chuàng)建。

use CakeValidationValidator;
$validator = new Validator();

驗證數(shù)據(jù)

一旦創(chuàng)建了驗證器,我們就可以使用驗證器實例驗證數(shù)據(jù)。下面的代碼解釋了我們?nèi)绾螢榈卿浘W(wǎng)頁驗證數(shù)據(jù)。

$validator->notEmpty('username', 'We need username.')->add('username',
   'validFormat', ['rule' => 'email','message' => 'E-mail must be valid']);

$validator->notEmpty('password', 'We need password.');
$errors = $validator->errors($this->request->data());

使用驗證器實例,我們首先調(diào)用notEmpty()方法,確保用戶名不為空。之后,我們用add()方法來添加一個驗證器來驗證正確的email格式。

之后,我們又為密碼域調(diào)用notEmpty()方法,將確認密碼不為空。

修改config/routes.php文件如下。

config/routes.php文件

<?php
   use CakeCorePlugin;
   use CakeRoutingRouteBuilder;
   use CakeRoutingRouter;

   Router::defaultRouteClass('DashedRoute');
   Router::scope('/', function (RouteBuilder $routes) {
      $routes->connect('validation',['controller'=>'Valids','action'=>'index']);
      $routes->fallbacks('DashedRoute');
   });
   Plugin::routes();

src/Controller/目錄下創(chuàng)建一個ValidsController.php文件。復(fù)制以下代碼至其中。

src/Controller/ValidsController.php

<?php
   namespace AppController;
   use AppControllerAppController;
   use CakeValidationValidator;

   class ValidsController extends AppController{
      public function index(){
         $validator = new Validator();
         $validator->notEmpty('username', 'We need username.')
            ->add('username', 'validFormat', ['rule' => 'email','message' 
            => 'E-mail must be valid']);
         
         $validator->notEmpty('password', 'We need password.');
         $errors = $validator->errors($this->request->data());
         $this->set('errors',$errors);
      }
   }
?>

src/Template目錄下創(chuàng)建一個Valids目錄,并在該Valids目錄下創(chuàng)建一個名為index.ctp視圖文件。復(fù)制以下代碼至其中。

src/Template/Valids/index.ctp

<?php
   if($errors){
      foreach($errors as $error)
      foreach($error as $msg)
      
      echo '<font color = "red">'.$msg.'</font>l';
   } else {
      echo "No errors.";
   }

   echo $this->Form->create("Logins",array('url'=>'/validation'));
   echo $this->Form->input('username');
   echo $this->Form->input('password');
   echo $this->Form->button('Submit');
   echo $this->Form->end();
?>

通過訪問以下網(wǎng)址執(zhí)行上面的例子- 

http://localhost:85/CakePHP/validation

輸出

點擊提交按鈕,而無需輸入任何內(nèi)容。您會收到以下頁面。



以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號