Rumah pembangunan bahagian belakang tutorial php Bagaimana untuk bertanya dan mengemas kini data dalam CakePHP?

Bagaimana untuk bertanya dan mengemas kini data dalam CakePHP?

Jun 03, 2023 pm 02:11 PM
memperbaharui cakephp Pertanyaan data

CakePHP ialah rangka kerja PHP popular yang menyediakan fungsi ORM (Pemetaan Perhubungan Objek) yang mudah, menjadikannya sangat mudah untuk membuat pertanyaan dan mengemas kini pangkalan data.

Artikel ini akan memperkenalkan cara membuat pertanyaan dan mengemas kini data dalam CakePHP. Kami akan mulakan dengan pertanyaan dan kemas kini mudah dan berusaha untuk melihat cara menggunakan keadaan dan model yang berkaitan untuk membuat pertanyaan dan mengemas kini data dengan lebih kompleks.

  1. Pertanyaan Asas

Mula-mula, mari lihat cara membuat pertanyaan paling mudah. Katakan kami mempunyai jadual data yang dipanggil "Pengguna" dan kami ingin mendapatkan semula semua rekod pengguna.

Dalam CakePHP, kita boleh menggunakan kaedah cari untuk mendapatkan semula data. Berikut ialah contoh kod:

$users = $this->Users->find('all');
Salin selepas log masuk

Ini akan mengembalikan tatasusunan yang mengandungi semua rekod pengguna. Jika anda hanya ingin mendapatkan satu rekod, anda boleh menggunakan kaedah find('first'):

$user = $this->Users->find('first');
Salin selepas log masuk

Ini akan mengembalikan rekod pengguna pertama. Anda juga boleh menggunakan kaedah find('list') untuk mendapatkan semula jadual cincang pasangan nilai kunci, dengan kunci ialah kunci utama rekod dan nilainya ialah medan yang ditentukan. Contohnya, jika anda ingin mendapatkan jadual cincang bagi ID dan nama pengguna, anda boleh menggunakan kod berikut:

$users = $this->Users->find('list', ['keyField' => 'id', 'valueField' => 'name']);
Salin selepas log masuk
  1. Pertanyaan Bersyarat

Apabila anda perlu melakukan pertanyaan bersyarat CakePHP menyediakan cara yang mudah untuk menapis data dalam hasil pertanyaan. Anda boleh menggunakan kaedah where dan andWhere untuk membina keadaan pertanyaan secara pemrograman. Berikut ialah contoh kod:

$users = $this->Users->find()
    ->where(['age >' => 18, 'name LIKE' => '%John%'])
    ->andWhere(['gender' => 'male'])
    ->all();
Salin selepas log masuk

Dalam kod di atas, kami menggunakan kaedah where dan and andWhere untuk menentukan syarat pertanyaan. Syarat pertama menentukan pengguna yang berumur lebih daripada 18 tahun dan mempunyai "John" dalam nama mereka. Syarat kedua menentukan pengguna dengan jantina "lelaki". Akhir sekali, kami menggunakan kaedah semua untuk mendapatkan semula semua rekod pengguna yang memenuhi kriteria.

Anda juga boleh menggunakan syarat pertanyaan kompleks, seperti IN, NOT IN, ANTARA, dsb. Berikut ialah contoh kod:

$users = $this->Users->find()
    ->where(['age BETWEEN' => [18, 25]])
    ->andWhere(['state IN' => ['CA', 'NY', 'TX']])
    ->all();
Salin selepas log masuk

Dalam kod di atas, kami telah menggunakan syarat BETWEEN dan IN untuk menentukan pengguna yang berumur antara 18 dan 25 tahun dan yang berstatus CA, NY atau TX. Begitu juga, kami menggunakan kaedah semua untuk mendapatkan semula semua rekod pengguna yang memenuhi kriteria.

  1. Pertanyaan Berkaitan

Dalam CakePHP, anda boleh melakukan pertanyaan berkaitan dengan mudah. Katakan kita mempunyai jadual data yang dipanggil "Siaran" sebagai tambahan kepada rekod pengguna dan setiap pengguna mempunyai berbilang siaran. Mari lihat cara untuk bertanya kepada pengguna dan semua siaran mereka.

Pertama, kita perlu mentakrifkan perkaitan Siaran dalam model Pengguna. Kita boleh menggunakan kaedah belongsTo untuk mengaitkan jadual data dengan model Pengguna. Berikut ialah contoh kod:

class UsersTable extends Table
{
    public function initialize(array $config)
    {
        $this->hasMany('Posts');
    }
}
Salin selepas log masuk

Dalam kod di atas, kami menggunakan kaedah hasMany untuk menentukan perkaitan antara model Pengguna dan jadual data Posts.

Kini kita boleh menggunakan kaedah cari pertanyaan berkaitan untuk mendapatkan semua pengguna dan semua artikel mereka. Berikut ialah contoh kod:

$users = $this->Users->find('all', [
    'contain' => ['Posts']
]);
Salin selepas log masuk

Dalam kod di atas, kami menggunakan pilihan mengandungi untuk menentukan jadual data yang akan dikaitkan. Anda juga boleh menentukan berbilang persatuan melalui tatasusunan. Contohnya, jika model Pengguna anda turut dikaitkan dengan jadual Komen, anda boleh menulis seperti ini:

$users = $this->Users->find('all', [
    'contain' => ['Posts', 'Comments']
]);
Salin selepas log masuk

Apabila melakukan pertanyaan berkaitan, CakePHP akan menggunakan cantuman dalaman (INNER JOIN) untuk menggabungkan dua jadual data untuk mendapatkan data berkaitan. Jika anda ingin menggunakan LEFT JOIN atau KANAN JOIN, anda boleh menentukannya dalam definisi persatuan.

  1. Kemas Kini Data

Apabila anda perlu mengemas kini rekod dalam pangkalan data, CakePHP menyediakan cara yang mudah untuk melaksanakan operasi kemas kini. Anda boleh menggunakan kaedah updateAll untuk mengemas kini rekod secara pemrograman. Berikut ialah contoh kod:

$result = $this->Users->updateAll(
    ['age' => 25],
    ['name LIKE' => '%John%']
);
Salin selepas log masuk

Dalam kod di atas, kami menggunakan kaedah kemas kiniSemua untuk mengemas kini semua pengguna yang berumur 25 tahun yang namanya mengandungi "John". Kaedah updateAll menerima dua parameter. Parameter pertama menentukan lajur dan nilai yang akan ditetapkan. Dalam contoh di atas, kami menetapkan umur kepada 25 tahun. Parameter kedua menentukan syarat untuk rekod dikemas kini.

Jika anda hanya ingin mengemas kini satu rekod, anda boleh menggunakan kaedah simpan. Berikut ialah contoh kod:

$user = $this->Users->get(1);
$user->age = 25;
$this->Users->save($user);
Salin selepas log masuk

Dalam kod di atas, kami telah menggunakan kaedah get untuk mendapatkan semula rekod pengguna dengan ID 1. Kami kemudian mengemas kini umur rekod dan menggunakan kaedah simpan untuk menyimpan perubahan.

Apabila anda perlu memadamkan rekod, anda juga boleh menggunakan kaedah deleteAll dan padam yang disediakan oleh CakePHP.

Ringkasan

Dalam artikel ini, kami memperkenalkan cara membuat pertanyaan dan mengemas kini data dalam CakePHP. Kami mempelajari cara menggunakan kaedah pertanyaan dan kemas kini yang mudah, serta cara menggunakan model bersyarat dan hubungan untuk pertanyaan dan kemas kini yang lebih kompleks. Dengan menggunakan fungsi ORM yang mudah disediakan oleh CakePHP, anda boleh memanipulasi pangkalan data dengan mudah untuk memenuhi keperluan aplikasi anda.

Atas ialah kandungan terperinci Bagaimana untuk bertanya dan mengemas kini data dalam CakePHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China 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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk membetulkan kemas kini Blizzard Battle.net tersekat pada 45%? Bagaimana untuk membetulkan kemas kini Blizzard Battle.net tersekat pada 45%? Mar 16, 2024 pm 06:52 PM

Kemas kini Blizzard Battle.net terus tersekat pada 45%, bagaimana untuk menyelesaikannya? Baru-baru ini, ramai orang telah terperangkap pada bar kemajuan 45% apabila mengemas kini perisian Mereka masih akan tersekat selepas dimulakan semula beberapa kali Jadi bagaimana untuk menyelesaikan situasi ini? itu, tutorial perisian ini akan berkongsi langkah operasi, dengan harapan dapat membantu lebih ramai orang. Kemas kini Blizzard Battle.net terus tersekat pada 45%, bagaimana untuk menyelesaikannya 1. Pelanggan 1. Mula-mula, anda perlu mengesahkan bahawa klien anda adalah versi rasmi yang dimuat turun dari laman web rasmi. 2. Jika tidak, pengguna boleh memasuki laman web pelayan Asia untuk memuat turun. 3. Selepas memasukkan, klik Muat turun di penjuru kanan sebelah atas. Nota: Pastikan anda tidak memilih Bahasa Cina Ringkas semasa memasang.

Konfigurasi Projek CakePHP Konfigurasi Projek CakePHP Sep 10, 2024 pm 05:25 PM

Dalam bab ini, kita akan memahami Pembolehubah Persekitaran, Konfigurasi Umum, Konfigurasi Pangkalan Data dan Konfigurasi E-mel dalam CakePHP.

CakePHP Bekerja dengan Pangkalan Data CakePHP Bekerja dengan Pangkalan Data Sep 10, 2024 pm 05:25 PM

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

Kemas kini Epic Seven pada 22 Februari: Minggu kedua Miracle Maid Kingdom bermula Kemas kini Epic Seven pada 22 Februari: Minggu kedua Miracle Maid Kingdom bermula Feb 21, 2024 pm 05:52 PM

Epic Seven telah disahkan dikemas kini secara berterusan pada jam 11 tengah hari pada 22 Februari. Kemas kini ini akan membawa kepada kita banyak aktiviti dan kandungan baharu, termasuk peningkatan dalam kadar pemanggilan terhad Leia dan Sweet Miracle, kemas kini kepada kumpulan kad misteri , Minggu kedua cerita sampingan khas Miracle Maid Kingdom telah bermula. Jadual kemas kini permainan mudah alih: The Seventh Epic akan dikemas kini pada 22 Februari: The Miracle Maid Kingdom akan dibuka untuk minggu kedua ※Peluang untuk memanggil "Leia" & "Sweet Miracle" terhad sudah habis! ■Masa Peluang Pemanggilan Terhad: -2024/02/22 (Khamis) 11:00 ~ 2024/03/07 (Khamis) 10:59 ■Atribut & Pekerjaan Watak: Atribut Semulajadi, Pahlawan ■Pengenalan Watak: Band Empat Orang sub-vokalis "Miracle Maid Kingdom" dan Bei

Bagaimana untuk memasang Angular pada Ubuntu 24.04 Bagaimana untuk memasang Angular pada Ubuntu 24.04 Mar 23, 2024 pm 12:20 PM

Angular.js ialah platform JavaScript yang boleh diakses secara bebas untuk mencipta aplikasi dinamik. Ia membolehkan anda menyatakan pelbagai aspek aplikasi anda dengan cepat dan jelas dengan memanjangkan sintaks HTML sebagai bahasa templat. Angular.js menyediakan pelbagai alatan untuk membantu anda menulis, mengemas kini dan menguji kod anda. Selain itu, ia menyediakan banyak ciri seperti penghalaan dan pengurusan borang. Panduan ini akan membincangkan cara memasang Angular pada Ubuntu24. Mula-mula, anda perlu memasang Node.js. Node.js ialah persekitaran berjalan JavaScript berdasarkan enjin ChromeV8 yang membolehkan anda menjalankan kod JavaScript pada bahagian pelayan. Untuk berada di Ub

Lantern and Dungeon dikemas kini pada 29 Februari: Versi termaster ╳ 'Legend of Nezha' linkage Lantern and Dungeon dikemas kini pada 29 Februari: Versi termaster ╳ 'Legend of Nezha' linkage Feb 28, 2024 am 08:13 AM

Lantern and Dungeons telah disahkan akan dikemas kini pada 29 Februari Selepas kemas kini, versi remastered Lantern and Dungeons akan dilancarkan, dan versi remaster juga akan dipautkan ke Legend of Nezha Versi remaster juga akan membawakan yang baharu profesion, dan pemain boleh terus menukar kerja, kandungan penjara juga akan diperluas, kawasan penjara baharu akan dibuka, dsb. Jadual kemas kini permainan mudah alih Lantern dan Dungeon dikemas kini pada 29 Februari: Versi terpakai ╳ Kandungan utama versi pautan "Legend of Nezha" Profesion baharu, mengapa anda dijemput untuk menukar kerja Pencahayaan lampu sebenarnya boleh menukar kerja Saya mendengar bahawa selepas bertukar kerja, pemegang tanglung juga boleh belajar banyak kemahiran yang menarik: Seluar Thai adalah panas! The Legend of Nezha akan datang bersama! Melangkah di atas roda panas, memegang bulatan langit dan bumi di tangan ♫ ~ Wira kecil dengan kebijaksanaan dan keberanian: Nezha dan Little Dragon Girl akan datang

Windows tidak boleh mengakses peranti, laluan atau fail yang ditentukan Windows tidak boleh mengakses peranti, laluan atau fail yang ditentukan Jun 18, 2024 pm 04:49 PM

Komputer rakan mempunyai kesalahan sedemikian Apabila membuka "PC ini" dan fail pemacu C, ia akan menggesa "Explorer.EXE Windows tidak boleh mengakses peranti, laluan atau fail yang ditentukan. Anda mungkin tidak mempunyai kebenaran yang sesuai untuk mengakses projek. " Termasuk folder, fail, Komputer ini, Tong Kitar Semula, dsb., klik dua kali akan muncul tetingkap sedemikian, tetapi adalah perkara biasa untuk membukanya dengan mengklik kanan. Ini disebabkan oleh kemas kini sistem Jika anda juga menghadapi situasi ini, editor di bawah akan mengajar anda cara menyelesaikannya. 1. Buka editor pendaftaran Win+R dan masukkan regedit, atau klik kanan menu mula untuk menjalankan dan masukkan regedit 2. Cari registri "Computer\HKEY_CLASSES_ROOT\PackagedCom\ClassInd";

Pengesah Mencipta CakePHP Pengesah Mencipta CakePHP Sep 10, 2024 pm 05:26 PM

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.

See all articles