CakePHP erstellt Validatoren

PHPz
Freigeben: 2024-09-10 17:26:58
Original
559 Leute haben es durchsucht

Validator kann durch Hinzufügen der folgenden zwei Zeilen im Controller erstellt werden.

use Cake\Validation\Validator;
$validator = new Validator();
Nach dem Login kopieren

Daten validieren

Sobald wir den Validator erstellt haben, können wir das Validator-Objekt zum Validieren von Daten verwenden. Der folgende Code erklärt, wie wir Daten für die Login-Webseite validieren können.

$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());
Nach dem Login kopieren

Mit dem $validator-Objekt haben wir zunächst die Methode notEmpty() aufgerufen, die sicherstellt, dass der Benutzername nicht leer sein darf. Danach haben wir die Methode add() verkettet, um eine weitere Validierung für das richtige E-Mail-Format hinzuzufügen.

Danach haben wir eine Validierung für das Passwortfeld mit der Methode notEmpty() hinzugefügt, die bestätigt, dass das Passwortfeld nicht leer sein darf.

Beispiel

Nehmen Sie Änderungen in der Datei config/routes.php vor, wie im folgenden Programm gezeigt.

config/routes.php

<?php
use Cake\Http\Middleware\CsrfProtectionMiddleware;
use Cake\Routing\Route\DashedRoute;
use Cake\Routing\RouteBuilder;
$routes->setRouteClass(DashedRoute::class);
$routes->scope('/', function (RouteBuilder $builder) {
   $builder->registerMiddleware('csrf', new CsrfProtectionMiddleware([
      'httpOnly' => true,
   ]));
   $builder->applyMiddleware('csrf');
   //$builder->connect('/pages',['controller'=>'Pages','action'=>'display', 'home']);
   $builder->connect('validation',['controller'=>'Valids','action'=>'index']);
   $builder->fallbacks();
});
Nach dem Login kopieren

Erstellen Sie eine ValidsController.php-Datei unter src/Controller/ValidsController.php. Kopieren Sie den folgenden Code in die Controller-Datei.

src/Controller/ValidsController.php

<?php
   namespace App\Controller;
   use App\Controller\AppController;
   use Cake\Validation\Validator;
   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->getData());
         $this->set('errors',$errors);
      }
   }
?>
Nach dem Login kopieren

Erstellen Sie ein Verzeichnis Valids unter src/Template und erstellen Sie unter diesem Verzeichnis eine View-Datei mit dem Namen index.php. Kopieren Sie die Folgender Code in dieser Datei.

src/Template/Valids/index.php

<?php
   if($errors) {
      foreach($errors as $error)
      foreach($error as $msg)
      echo '<font color="red">'.$msg.'</font><br>';
   } else {
      echo "No errors.";
   }
   echo $this->Form->create(NULL,array('url'=>'/validation'));
   echo $this->Form->control('username');
   echo $this->Form->control('password');
   echo $this->Form->button('Submit');
   echo $this->Form->end();
?>
Nach dem Login kopieren

Führen Sie das obige Beispiel aus, indem Sie die folgende URL besuchen −

http://localhost/cakephp4/validation

Ausgabe

Klicken Sie auf die Schaltfläche „Senden“, ohne etwas einzugeben. Sie erhalten die folgende Ausgabe.

Click PHP

Http – Client

Mit dem http-Client können Anfragen wie GET, POST, PUT usw. gestellt werden.

Um mit dem HTTP-Client zu arbeiten, fügen Sie Folgendes hinzu −

use Cake\Http\Client;
Nach dem Login kopieren

Lassen Sie uns an einem Beispiel arbeiten, um die Funktionsweise des HTTP-Clients zu verstehen.

HTTP-GET-Methode

Um die Daten von der angegebenen http-URL zu erhalten, können Sie wie folgt vorgehen −

$response = $http->get('https://jsonplaceholder.typicode.com/users');
Nach dem Login kopieren

Falls Sie einige Abfrageparameter übergeben müssen, können diese wie folgt übergeben werden −

$response = $http->get('https://jsonplaceholder.typicode.com/users', ["id", 1]);
Nach dem Login kopieren

Um die Antwort zu erhalten, können Sie wie folgt vorgehen: −

Für normale Textdaten

$response->getBody();
Nach dem Login kopieren

Für Json

$response->getJson();
Nach dem Login kopieren

Für Xml

$response->getXml()
Nach dem Login kopieren

Beispiel

Nehmen Sie Änderungen in der Datei config/routes.php vor, wie im folgenden Programm gezeigt.

config/routes.php

<?php
use Cake\Http\Middleware\CsrfProtectionMiddleware;
use Cake\Routing\Route\DashedRoute;
use Cake\Routing\RouteBuilder;
$routes->setRouteClass(DashedRoute::class);
$routes->scope('/', function (RouteBuilder $builder) {
   $builder->registerMiddleware('csrf', new CsrfProtectionMiddleware([
      'httpOnly' => true,
   ]));
   $builder->applyMiddleware('csrf');
   //$builder->connect('/pages',['controller'=>'Pages','action'=>'display', 'home']);
   $builder->connect('getData',['controller'=>'Requests','action'=>'index']);
   $builder->fallbacks();
});
Nach dem Login kopieren

Erstellen Sie eine RequestsController.php-Datei unter src/Controller/RequestsController.php. Kopieren Sie den folgenden Code in die Controller-Datei.

src/Controller/RequestsController.php

<?php
   namespace App\Controller;
   use App\Controller\AppController;
   use Cake\Http\Client;
   class RequestsController extends AppController{
      public function index(){
         $http = new Client();
         $response = $http->get('https://jsonplaceholder.typicode.com/users');
         $stream = $response->getJson();
         $this->set('response',$stream);
      }
   }
?>
Nach dem Login kopieren

Erstellen Sie ein Verzeichnis Requests unter src/Template und erstellen Sie unter diesem Verzeichnis eine View-Datei mit dem Namen index.php. Kopieren Sie die Folgender Code in dieser Datei.

src/Template/Requests/index.php

<h3>All Users from url : https://jsonplaceholder.typicode.com/users</h3>
<?php
   if($response) {
      foreach($response as $res => $val) {
         echo '<font color="gray">Name: '.$val["name"].' Email -'.$val["email"].'</font><br>';
      }
   }
?>
Nach dem Login kopieren

Führen Sie das obige Beispiel aus, indem Sie die folgende URL besuchen −

http://localhost/cakephp4/getData
Nach dem Login kopieren

Ausgabe

Klicken Sie auf die Schaltfläche „Senden“, ohne etwas einzugeben. Sie erhalten die folgende Ausgabe.

Users URL

HTTP-POST-Methode

Um mit Post zu arbeiten, müssen Sie den $http-Client wie folgt aufrufen −

$response = $http->post('yoururl', data);
Nach dem Login kopieren

Sehen wir uns dazu ein Beispiel an.

Beispiel

Nehmen Sie Änderungen in der Datei config/routes.php vor, wie im folgenden Programm gezeigt.

config/routes.php

<?php
use Cake\Http\Middleware\CsrfProtectionMiddleware;
use Cake\Routing\Route\DashedRoute;
use Cake\Routing\RouteBuilder;
$routes->setRouteClass(DashedRoute::class);
$routes->scope('/', function (RouteBuilder $builder) {
   $builder->registerMiddleware('csrf', new CsrfProtectionMiddleware([
      'httpOnly' => true,
   ]));
   $builder->applyMiddleware('csrf');
   //$builder->connect('/pages',['controller'=>'Pages','action'=>'display', 'home']);
   $builder->connect('postData',['controller'=>'Requests','action'=>'index']);
   $builder->fallbacks();
});
Nach dem Login kopieren

Erstellen Sie eine Datei RequestsController.php unter src/Controller/RequestsController.php. Kopieren Sie den folgenden Code in die Controller-Datei. Ignorieren, wenn bereits erstellt.

src/Controller/RequestsController.php

<?php
   namespace App\Controller;
   use App\Controller\AppController;
   use Cake\Http\Client;
   class RequestsController extends AppController{
      public function index(){
         $http = new Client();
         $response = $http->post('https://postman-echo.com/post', [
            'name'=> 'ABC',
            'email' => 'xyz@gmail.com'
         ]);
      }
   }
?>
Nach dem Login kopieren

Erstellen Sie ein Verzeichnis Requests unter src/Template und erstellen Sie unter diesem Verzeichnis eine View-Datei mit dem Namen index.php. Kopieren Sie den folgenden Code in diese Datei.

src/Template/Requests/index.php

<h3>Testing Post Method</h3>
Nach dem Login kopieren

Führen Sie das obige Beispiel aus, indem Sie die folgende URL besuchen −

http://localhost/cakephp4/postData

Ausgabe

Nachstehend finden Sie die Ausgabe des Codes −

Post Method

Ähnlich können Sie es mit der PUT-Methode versuchen.

$http = new Client();
$response = $http->put('https://postman-echo.com/post', [
   'name'=> 'ABC',
   'email' => 'xyz@gmail.com'
]);
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonCakePHP erstellt Validatoren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage