CakePHP 유효성 검사기 만들기
Validator는 컨트롤러에 다음 두 줄을 추가하여 생성할 수 있습니다.
use Cake\Validation\Validator; $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());
$validator 개체를 사용하여 먼저 notEmpty() 메서드를 호출했습니다. 이를 통해 사용자 이름이 비어 있으면 안 됩니다. 그 후 add() 메소드를 연결하여 올바른 이메일 형식에 대한 유효성 검사를 하나 더 추가했습니다.
그런 다음 notEmpty() 메소드를 사용하여 비밀번호 필드에 대한 유효성 검사를 추가했는데, 이는 비밀번호 필드가 비어 있으면 안 된다는 것을 확인합니다.
예
다음 프로그램과 같이 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 파일을 생성합니다. 해당 파일의 다음 코드를 참조하세요.
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을 방문하여 위의 예시를 실행해 보세요 -
http://localhost/cakephp4/validation
출력
아무 것도 입력하지 않고 제출 버튼을 클릭하세요. 다음과 같은 출력을 받게 됩니다.

Http - 클라이언트
http 클라이언트를 사용하여 GET, POST, PUT 등과 같은 요청을 할 수 있습니다.
http 클라이언트로 작업하려면 다음을 추가하세요. −
use Cake\Http\Client;
HTTP 클라이언트의 작동을 이해하기 위해 예제를 살펴보겠습니다.
HTTP GET 방식
http url 제공에서 데이터를 얻으려면 다음과 같이 할 수 있습니다. −
$response = $http->get('https://jsonplaceholder.typicode.com/users');
일부 쿼리 매개변수를 전달해야 하는 경우 다음과 같이 전달할 수 있습니다. −
$response = $http->get('https://jsonplaceholder.typicode.com/users', ["id", 1]);
응답을 받으려면 다음과 같이 하세요. −
일반 텍스트 데이터 −
의 경우$response->getBody();
Json −
의 경우$response->getJson();
Xml −
의 경우$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 파일을 생성합니다. 해당 파일의 다음 코드를 참조하세요.
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을 방문하여 위의 예시를 실행해 보세요 -
http://localhost/cakephp4/getData
출력
아무 것도 입력하지 않고 제출 버튼을 클릭하세요. 다음과 같은 출력을 받게 됩니다.

HTTP POST 방식
포스트 작업을 하려면 다음과 같이 $http 클라이언트를 호출해야 합니다. −
$response = $http->post('yoururl', data);
동일한 예를 하나 살펴보겠습니다.
예
다음 프로그램과 같이 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 파일을 생성합니다.
컨트롤러 파일에 다음 코드를 복사합니다. 이미 생성된 경우 무시하세요.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을 방문하여 위의 예시를 실행해 보세요 -
http://localhost/cakephp4/postData
출력
아래는 코드의 출력입니다. −

마찬가지로 PUT 방식을 시도해 볼 수 있습니다.
$http = new Client(); $response = $http->put('https://postman-echo.com/post', [ 'name'=> 'ABC', 'email' => 'xyz@gmail.com' ]);
위 내용은 CakePHP 유효성 검사기 만들기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











이번 장에서는 CakePHP의 환경 변수, 일반 구성, 데이터베이스 구성, 이메일 구성에 대해 알아봅니다.

PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

CakePHP는 PHP용 오픈 소스 프레임워크입니다. 이는 애플리케이션을 훨씬 쉽게 개발, 배포 및 유지 관리할 수 있도록 하기 위한 것입니다. CakePHP는 강력하고 이해하기 쉬운 MVC와 유사한 아키텍처를 기반으로 합니다. 모델, 뷰 및 컨트롤러 gu

CakePHP에서 데이터베이스 작업은 매우 쉽습니다. 이번 장에서는 CRUD(생성, 읽기, 업데이트, 삭제) 작업을 이해하겠습니다.
