Rumah > pembangunan bahagian belakang > tutorial php > CakePHP Bekerja dengan Pangkalan Data

CakePHP Bekerja dengan Pangkalan Data

王林
Lepaskan: 2024-09-10 17:25:36
asal
373 orang telah melayarinya

Bekerja dengan pangkalan data dalam CakePHP adalah sangat mudah. Kami akan memahami operasi CRUD (Buat, Baca, Kemas Kini, Padam) dalam bab ini.

Selanjutnya, kami juga perlu mengkonfigurasi pangkalan data kami dalam fail config/app_local.php.

'Datasources' => [
   'default' => [
      'host' => 'localhost',
      'username' => 'my_app',
      'password' => 'secret',
      'database' => 'my_app',
      'url' => env('DATABASE_URL', null),
   ],
   /*
      * The test connection is used during the test suite.
   */
   'test' => [
      'host' => 'localhost',
      //'port' => 'non_standard_port_number',
      'username' => 'my_app',
      'password' => 'secret',
      'database' => 'test_myapp',
      //'schema' => 'myapp',
   ],
],
Salin selepas log masuk

Sambungan lalai mempunyai butiran berikut −

'host' => 'localhost',
   'username' => 'my_app',
   'password' => 'secret',
   'database' => 'my_app',
Salin selepas log masuk

Anda boleh menukar butiran, iaitu hos, nama pengguna, kata laluan dan pangkalan data mengikut pilihan anda.

Setelah selesai, pastikan ia dikemas kini dalam config/app_local.php dalam objek Datasources.

Sekarang, kami akan meneruskan butiran di atas, pergi ke pangkalan data phpmyadmin atau mysql anda dan buat pengguna my_app seperti yang ditunjukkan di bawah −

My App

Berikan keistimewaan yang diperlukan dan simpannya. Kini, kami mempunyai butiran pangkalan data mengikut konfigurasi yang dinyatakan dalam app_local.php. Apabila anda menyemak halaman utama CakePHP, inilah yang anda patut dapatkan −

App Local

Sekarang, kami akan mencipta jadual pengguna berikut dalam pangkalan data.

CREATE TABLE `users` ( 
   `id` int(11) NOT NULL AUTO_INCREMENT,
   `username` varchar(50) NOT NULL, 
   `password` varchar(255) NOT NULL, PRIMARY KEY (`id`) 
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1
Salin selepas log masuk

Masukkan Rekod

Untuk memasukkan rekod dalam pangkalan data, kita perlu mendapatkan jadual menggunakan kelas TableRegistry dahulu. Kami boleh mengambil contoh daripada pendaftaran menggunakan kaedah get(). Kaedah get() akan mengambil nama jadual pangkalan data sebagai hujah.

Acara baharu ini digunakan untuk mencipta entiti baharu. Tetapkan nilai yang diperlukan dengan contoh entiti baharu. Kini kita perlu memanggil kaedah save() dengan contoh kelas TableRegistry yang akan memasukkan rekod baharu dalam pangkalan data.

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('/users/add', ['controller' => 'Users', 'action' => 'add']);
   $builder->fallbacks();
});
Salin selepas log masuk

Buat fail UsersController.php di src/Controller/UsersController.php. Salin kod berikut dalam fail pengawal.

src/controller/UsersController.php

<?php namespace App\Controller;
use App\Controller\AppController;
use Cake\ORM\TableRegistry;
use Cake\Datasource\ConnectionManager;
use Cake\Auth\DefaultPasswordHasher;
class UsersController extends AppController{
   public function add(){
      if($this->request->is('post')){
         $username = $this->request->getData('username');
         $hashPswdObj = new DefaultPasswordHasher;
         $password = $hashPswdObj->hash($this->request->getData('password'));
         $users_table = TableRegistry::get('users');
         $users = $users_table->newEntity($this->request->getData());
         $users->username = $username;
         $users->password = $password;
         $this->set('users', $users);
         if($users_table->save($users))
         echo "User is added.";
      }
   }
}
?>
Salin selepas log masuk

Buat direktori Pengguna di src/Template dan di bawah direktori itu cipta fail View yang dipanggil add.php. Salin kod berikut dalam fail itu.

src/Template/Users/add.php

<?php echo $this->Form->create(NULL,array('url'=>'/users/add'));
   echo $this->Form->control('username');
   echo $this->Form->control('password');
   echo $this->Form->button('Submit');
   echo $this->Form->end();
?>
Salin selepas log masuk

Laksanakan contoh di atas dengan melawati URL berikut. http://localhost/cakephp4/users/add

Output

Setelah pelaksanaan, anda akan menerima output berikut.

CakePHP Bekerja dengan Pangkalan Data

Data akan disimpan dalam jadual pengguna seperti yang ditunjukkan di bawah −

Show All

Atas ialah kandungan terperinci CakePHP Bekerja dengan Pangkalan Data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan