Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.
use Cake\Validation\Validator; $validator = new Validator();
Mengesahkan Data
Sebaik sahaja, kami telah mencipta validator, kami boleh menggunakan objek validator untuk mengesahkan data. Kod berikut menerangkan cara kami boleh mengesahkan data untuk halaman web log masuk.
$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());
Menggunakan objek $validator, kami telah terlebih dahulu memanggil kaedah notEmpty(), yang akan memastikan bahawa nama pengguna mestilah tidak kosong. Selepas itu, kami telah merantai kaedah add() untuk menambah satu lagi pengesahan untuk format e-mel yang betul.
Selepas itu kami telah menambah pengesahan untuk medan kata laluan dengan kaedah notEmpty(), yang akan mengesahkan bahawa medan kata laluan mestilah tidak kosong.
Contoh
Buat Perubahan dalam fail config/routes.php seperti yang ditunjukkan dalam program berikut.
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(); });
Buat fail ValidsController.php di src/Controller/ValidsController.php. Salin kod berikut dalam fail pengawal.
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); } } ?>
Buat direktori Valids di src/Template dan di bawah direktori itu buat fail View bernama index.php. Salin mengikuti kod dalam fail itu.
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(); ?>
Laksanakan contoh di atas dengan melawati URL berikut ?
http://localhost/cakephp4/validation
Output
Klik pada butang hantar tanpa memasukkan apa-apa. Anda akan menerima output berikut.

Http - Pelanggan
Klien http boleh digunakan untuk membuat permintaan seperti GET, POST, PUT dll.
Untuk bekerja dengan klien http, tambahkan yang berikut ?
use Cake\Http\Client;
Mari kami mengusahakan contoh untuk memahami kerja klien HTTP.
Kaedah HTTP GET
Untuk mendapatkan data daripada give http url, anda boleh lakukan seperti berikut ?
$response = $http->get('https://jsonplaceholder.typicode.com/users');
Sekiranya, anda perlu lulus beberapa param pertanyaan, ia boleh dihantar seperti berikut ?
$response = $http->get('https://jsonplaceholder.typicode.com/users', ["id", 1]);
Untuk mendapatkan respons, anda boleh lakukan seperti berikut ?
Untuk data teks biasa ?
$response->getBody();
Untuk Json ?
$response->getJson();
Untuk Xml ?
$response->getXml()
Contoh
Buat Perubahan dalam fail config/routes.php seperti yang ditunjukkan dalam program berikut.
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(); });
Buat fail RequestsController.php di src/Controller/RequestsController.php. Salin kod berikut dalam fail pengawal.
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); } } ?>
Buat direktori Permintaan di src/Template dan di bawah direktori itu buat fail View yang dipanggil index.php. Salin mengikuti kod dalam fail itu.
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>'; } } ?>
Laksanakan contoh di atas dengan melawati URL berikut ?
http://localhost/cakephp4/getData
Output
Klik pada butang hantar tanpa memasukkan apa-apa. Anda akan menerima output berikut.

Kaedah HTTP POST
Untuk bekerja dengan pos, anda perlu menghubungi pelanggan $http seperti berikut ?
$response = $http->post('yoururl', data);
Mari kita lihat satu contoh yang sama.
Contoh
Buat Perubahan dalam fail config/routes.php seperti yang ditunjukkan dalam program berikut.
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(); });
Buat fail RequestsController.php di src/Controller/RequestsController.php. Salin kod berikut dalam fail pengawal. Abaikan jika sudah dibuat.
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' ]); } } ?>
Buat direktori Permintaan di src/Template dan di bawah direktori itu cipta fail View yang dipanggil index.php. Salin kod berikut dalam fail itu.
src/Template/Requests/index.php
<h3>Testing Post Method</h3>
Laksanakan contoh di atas dengan melawati URL berikut ?
http://localhost/cakephp4/postData
Output
Diberikan di bawah ialah output kod ?

Begitu juga, anda boleh mencuba untuk kaedah PUT.
$http = new Client(); $response = $http->put('https://postman-echo.com/post', [ 'name'=> 'ABC', 'email' => 'xyz@gmail.com' ]);
Atas ialah kandungan terperinci Pengesah Mencipta CakePHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas





Dalam JavaScript, anda perlu menggunakan fungsi tersuai untuk menentukan sama ada dua array adalah sama, kerana tidak ada kaedah terbina dalam. 1) Pelaksanaan asas adalah untuk membandingkan panjang dan elemen, tetapi tidak dapat memproses objek dan tatasusunan. 2) Perbandingan kedalaman rekursif boleh mengendalikan struktur bersarang, tetapi memerlukan rawatan khas NAN. 3) Jenis khas seperti fungsi dan tarikh perlu dipertimbangkan, dan pengoptimuman dan ujian selanjutnya diperlukan.

Pengesahan nombor keselamatan sosial dilaksanakan dalam PHP melalui ekspresi biasa dan logik mudah. 1) Gunakan ungkapan biasa untuk membersihkan input dan keluarkan aksara bukan angka. 2) Periksa sama ada panjang rentetan adalah 18 bit. 3) Kirakan dan sahkan bit semak untuk memastikan ia sepadan dengan bit terakhir input.

Kaedah untuk mengendalikan dengan betul ini menunjuk dalam penutupan JavaScript termasuk: 1. Gunakan fungsi anak panah, 2. Gunakan kaedah mengikat, 3. Gunakan pembolehubah untuk menyimpan ini. Kaedah ini memastikan bahawa fungsi intrinsik ini betul menunjuk kepada konteks fungsi luaran.

Menggunakan JavaScript untuk melaksanakan penyulitan data boleh menggunakan perpustakaan Crypto-JS. 1. Pasang dan memperkenalkan perpustakaan Crypto-JS. 2. Gunakan algoritma AES untuk penyulitan dan penyahsulitan untuk memastikan kunci yang sama digunakan. 3. Perhatikan penyimpanan dan penghantaran kunci yang selamat. Adalah disyorkan untuk menggunakan mod CBC dan pembolehubah persekitaran untuk menyimpan kekunci. 4. Pertimbangkan menggunakan pekerja web apabila anda memerlukan prestasi tinggi. 5. Apabila memproses aksara bukan ASCII, anda perlu menentukan kaedah pengekodan.

Dalam PHP, pembina ditakrifkan oleh kaedah Magic \ _ _ _. 1) Tentukan kaedah membina \ _ \ _ di dalam kelas, yang akan dipanggil secara automatik apabila objek itu dimanfaatkan dan digunakan untuk memulakan sifat objek. 2) Pembina boleh menerima sebilangan parameter dan fleksibel memulakan objek. 3) Apabila menentukan pembina dalam subkelas, anda perlu memanggil ibu bapa :: \ _ \ _ membina () untuk memastikan bahawa pembina kelas induk melaksanakan. 4) Melalui parameter pilihan dan penghakiman, pembina boleh mensimulasikan kesan beban. 5) Pembina harus ringkas dan hanya permulaan yang perlu dilakukan untuk mengelakkan logik kompleks atau operasi I/O.

Langkah -langkah untuk menggunakan laman web Joomla di PHPStudy termasuk: 1) Konfigurasi PHPStudy, pastikan perkhidmatan Apache dan MySQL dijalankan dan periksa keserasian versi PHP; 2) Muat turun dan Decompress Laman Web PHPStudy dari laman web rasmi Joomla ke direktori root phpstudy, dan kemudian lengkapkan pemasangan melalui penyemak imbas mengikut wizard pemasangan; 3) Buat konfigurasi asas, seperti menetapkan nama laman web dan menambah kandungan.

Manfaat menggunakan suntikan ketergantungan (DI) dalam PHP termasuk: 1. Decoupling, menjadikan kod lebih modular; 2. Meningkatkan kesesuaian dan mudah menggunakan ejekan atau stub; 3. Meningkatkan fleksibiliti dan memudahkan penggunaan semula kebergantungan; 4. Meningkatkan kebolehgunaan semula, dan kelas boleh digunakan dalam persekitaran yang berbeza. Dengan melewati kebergantungan secara luaran ke objek, DI menjadikan kod lebih mudah untuk mengekalkan dan mengembangkan.

SendingMailSwithPhpissTraightForwardusingTheMemail () functionOrmoreadVancedLibrariesLikePhpmailer.1) useMail () forbasiceMails, menetapkanRecipients, subjek, mesej, andheaders.2)
