亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目次
データを検証しています
出力
HTTP - クライアント
HTTP GET メソッド
HTTP POST メソッド

CakePHP バリデータの作成

Sep 10, 2024 pm 05:26 PM
php cakephp PHP framework

コントローラーに次の 2 行を追加することでバリデータを作成できます。

use Cake\Validation\Validator;
$validator = new Validator();

データを検証しています

バリデータを作成したら、バリデータ オブジェクトを使用してデータを検証できます。次のコードは、ログイン Web ページのデータを検証する方法を説明しています。

$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());

$validator オブジェクトを使用して、最初に notEmpty() メソッドを呼び出します。これにより、ユーザー名が空であってはいけないことが保証されます。その後、add() メソッドを連鎖させて、適切な電子メール形式の検証をもう 1 つ追加しました。

その後、notEmpty() メソッドを使用してパスワード フィールドの検証を追加しました。これにより、パスワード フィールドが空であってはいけないことが確認(rèn)されます。

次のプログラムに示すように、config/routes.php ファイルを変更します。

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();
});

src/Controller/ValidsController.php に ValidsController.php ファイルを作成します。 コントローラー ファイルに次のコードをコピーします。

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);
      }
   }
?>

src/Template にディレクトリ Valids を作成し、そのディレクトリの下に index.php. という名前の View ファイルを作成します。そのファイル內(nèi)の次のコード。

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();
?>

次の URL にアクセスして、上記の例を?qū)g行します -

http://localhost/cakephp4/validation

出力

何も入力せずに送信ボタンをクリックしてください。次の出力が表示されます。

Click PHP

HTTP - クライアント

http クライアントは、GET、POST、PUT などのリクエストを行うために使用できます。

http クライアントを使用するには、次の行を追加します -

use Cake\Http\Client;

HTTP クライアントの動(dòng)作を理解するために例に取り組んでみましょう。

HTTP GET メソッド

指定した http URL からデータを取得するには、次のように実行できます -

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

いくつかのクエリパラメータを渡す必要がある場(chǎng)合は、次のように渡すことができます -

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

応答を取得するには、次のように実行できます-

通常のテキストデータの場(chǎng)合 ?

$response->getBody();

Json ?

の場(chǎng)合
$response->getJson();

Xml ?

の場(chǎng)合
$response->getXml()

次のプログラムに示すように、config/routes.php ファイルを変更します。

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();
});

src/Controller/RequestsController.php に RequestsController.php ファイルを作成します。 コントローラー ファイルに次のコードをコピーします。

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);
      }
   }
?>

src/Template にディレクトリ Requests を作成し、そのディレクトリの下に index.php. という名前の View ファイルを作成します。そのファイル內(nèi)の次のコード。

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>';
      }
   }
?>

次の URL にアクセスして、上記の例を?qū)g行します -

http://localhost/cakephp4/getData

出力

何も入力せずに送信ボタンをクリックしてください。次の出力が表示されます。

Users URL

HTTP POST メソッド

ポストを操作するには、次のように $http クライアントを呼び出す必要があります -

$response = $http->post('yoururl', data);

同じ例を 1 つ見(jiàn)てみましょう。

次のプログラムに示すように、config/routes.php ファイルを変更します。

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();
});

src/Controller/RequestsController.php.RequestsController.php ファイルを作成します。コントローラー ファイルに次のコードをコピーします。すでに作成されている場(chǎng)合は無(wú)視します。

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'
         ]);
      }
   }
?>

src/Template にディレクトリ Requests を作成し、そのディレクトリの下に、index.php という名前の View ファイルを作成します。そのファイルに次のコードをコピーします。

src/Template/Requests/index.php

<h3>Testing Post Method</h3>

次の URL にアクセスして、上記の例を?qū)g行します -

http://localhost/cakephp4/postData

出力

以下はコードの出力です -

Post Method

同様に、PUT メソッドでも試すことができます。

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

以上がCakePHP バリデータの作成の詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國(guó)語(yǔ) Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見(jiàn)つけた場(chǎng)合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無(wú)料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無(wú)料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無(wú)料のコードエディター

SublimeText3 中國(guó)語(yǔ)版

SublimeText3 中國(guó)語(yǔ)版

中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JavaScriptを使用して、2つの配列が等しいかどうかを判斷する方法は? JavaScriptを使用して、2つの配列が等しいかどうかを判斷する方法は? May 23, 2025 pm 10:51 PM

JavaScriptでは、カスタム関數(shù)を使用して、組み込みの方法がないため、2つの配列が等しいかどうかを判斷する必要があります。 1)基本的な実裝は、長(zhǎng)さと要素を比較することですが、オブジェクトと配列を処理することはできません。 2)再帰深度比較は、ネストされた構(gòu)造を処理できますが、NANの特別な処理が必要です。 3)関數(shù)や日付などの特別なタイプを考慮する必要があり、さらに最適化とテストが必要です。

PHPで社會(huì)保障番號(hào)文字列を検証する方法は? PHPで社會(huì)保障番號(hào)文字列を検証する方法は? May 23, 2025 pm 08:21 PM

社會(huì)保障番號(hào)の検証は、正規(guī)表現(xiàn)と単純なロジックを通じてPHPに実裝されています。 1)正規(guī)表現(xiàn)を使用して、入力をきれいにし、非數(shù)値文字を削除します。 2)文字列の長(zhǎng)さが18ビットかどうかを確認(rèn)します。 3)チェックビットを計(jì)算して検証して、入力の最後のビットと一致することを確認(rèn)します。

閉鎖でこのポイントを正しく処理する方法は? 閉鎖でこのポイントを正しく処理する方法は? May 21, 2025 pm 09:15 PM

JavaScript閉鎖のこのポイントを正しく処理する方法には、次のものが含まれます。1。矢印関數(shù)を使用します。2。バインドメソッドを使用します。3。変數(shù)を使用してこれを保存します。これらの方法により、この內(nèi)因性関數(shù)が外部関數(shù)のコンテキストを正しく指していることが保証されます。

JavaScriptでデータ暗號(hào)化を?qū)g裝する方法は? JavaScriptでデータ暗號(hào)化を?qū)g裝する方法は? May 23, 2025 pm 11:12 PM

JavaScriptを使用してデータ暗號(hào)化を?qū)g裝すると、Crypto-JSライブラリを使用できます。 1. Crypto-JSライブラリをインストールして紹介します。 2。暗號(hào)化と復(fù)號(hào)化にはAESアルゴリズムを使用して、同じキーが使用されるようにします。 3.キーの安全なストレージと送信に注意してください。 CBCモードと環(huán)境変數(shù)を使用してキーを保存することをお?jiǎng)幛幛筏蓼埂?4。高性能が必要な場(chǎng)合は、ウェブワーカーの使用を検討してください。 5.非ASCII文字を処理する場(chǎng)合、エンコーディングメソッドを指定する必要があります。

PHPでコンストラクターを定義する方法は? PHPでコンストラクターを定義する方法は? May 23, 2025 pm 08:27 PM

PHPでは、コンストラクターは\ _ \ _コンストラクトマジックメソッドによって定義されます。 1)クラスの\ _ \ _コンストラクトメソッドを定義します。これは、オブジェクトがインスタンス化され、オブジェクトプロパティの初期化に使用されるときに自動(dòng)的に呼び出されます。 2)コンストラクターは、任意の數(shù)のパラメーターを受け入れ、オブジェクトを柔軟に初期化できます。 3)サブクラスでコンストラクターを定義する場(chǎng)合、親クラスのコンストラクターが実行されるように、親を呼び出す必要があります:: \ _ \ _ construct()。 4)オプションのパラメーターと條件の判斷により、コンストラクターは過(guò)負(fù)荷効果をシミュレートできます。 5)コンストラクターは簡(jiǎn)潔であり、複雑なロジックまたはI/O操作を避けるために必要な初期化のみを行う必要があります。

PhpstudyにJoomla Webサイトを展開するための詳細(xì)な手順 PhpstudyにJoomla Webサイトを展開するための詳細(xì)な手順 May 16, 2025 pm 08:00 PM

PHPStudyにJoomla Webサイトを展開する手順には次のものがあります。1)PHPSTUDYの構(gòu)成、ApacheおよびMySQLサービスの実行とPHPバージョンの互換性を確認(rèn)してください。 2)PHPStudyのWebサイトを公式Joomla WebサイトからPhpStudyのルートディレクトリにダウンロードして減圧し、インストールウィザードに従ってブラウザを介してインストールを完了します。 3)Webサイト名の設(shè)定やコンテンツの追加など、基本的な構(gòu)成を作成します。

PHP依存性注入:利點(diǎn)と例 PHP依存性注入:利點(diǎn)と例 May 17, 2025 am 12:14 AM

PHPで依存関係注射(DI)を使用することの利點(diǎn)には、次のものが含まれます。1。デカップリング、コードのモジュラーの作成。 2。テスト可能性と使いやすい模擬またはスタブを改善します。 3.柔軟性を高め、依存関係の再利用を促進(jìn)します。 4。再利用性を改善すると、クラスはさまざまな環(huán)境で使用できます。依存関係をオブジェクトに外部に渡すことにより、DIはコードの維持と拡張を容易にします。

PHPメールチュートリアル:メールを簡(jiǎn)単に送信します PHPメールチュートリアル:メールを簡(jiǎn)単に送信します May 19, 2025 am 12:10 AM

sendingemailswithpisspisstraightforwardusingthemail()functionoreadvancedlibrarieslikephpmailer.1)usemail()forbasicemails、settrecients、supperts、messages、and Headers.2)

See all articles