CakePHP ialah projek sumber terbuka PHP berdasarkan rangka kerja MVC, yang menyediakan pelbagai alatan dan perpustakaan untuk pembangun membina aplikasi web dengan pantas. ORM (Pemetaan Perhubungan Objek) adalah bahagian penting daripadanya. Ia membolehkan pembangun menggunakan kaedah berorientasikan objek untuk memproses data dalam pangkalan data, menjadikan proses pembangunan lebih mudah dan cepat.
Dalam CakePHP, ORM dipanggil lapisan model dan merupakan kunci untuk berinteraksi dengan pangkalan data. Setiap model mewakili jadual pangkalan data Selepas membuat model, anda boleh menggunakan kaedah yang disediakan untuk membuat pertanyaan, menambah, memadam dan mengemas kini data dalam jadual.
Artikel ini akan memperkenalkan pertanyaan ORM secara terperinci, termasuk kaedah pertanyaan, syarat pertanyaan, pemprosesan hasil pertanyaan, dsb.
Dalam CakePHP, kaedah pertanyaan ditakrifkan dalam kelas model. Kaedah pertanyaan yang biasa digunakan adalah seperti berikut:
1.1 kaedah find()
find() ialah salah satu kaedah pertanyaan yang paling biasa digunakan dan boleh digunakan untuk menanyakan satu atau beberapa keping data. Sintaksnya adalah seperti berikut:
// 查询单条数据 $this->ModelName->find('first', $options); // 查询多条数据 $this->ModelName->find('all', $options);
Antaranya, parameter $options ialah tatasusunan yang digunakan untuk menentukan syarat pertanyaan, pengisihan, dsb.
1.2 kaedah findById()
findById() digunakan untuk menanya sekeping data berdasarkan kunci utama. Sintaksnya adalah seperti berikut:
$this->ModelName->findById($id);
$id ialah nilai kunci utama.
1.3 kaedah findCount()
findCount() digunakan untuk menanyakan jumlah bilangan data yang memenuhi syarat. Sintaksnya adalah seperti berikut:
$this->ModelName->findCount($conditions);
$conditions ialah syarat pertanyaan, yang boleh menjadi rentetan atau tatasusunan. Kaedah
1.4 field()
field() digunakan untuk menanyakan nilai medan yang ditentukan. Sintaksnya adalah seperti berikut:
$this->ModelName->field('field_name', $conditions);
$field_name mewakili nama medan untuk disoal, $conditions ialah syarat pertanyaan, yang boleh menjadi rentetan atau tatasusunan.
Syarat pertanyaan boleh berupa rentetan atau tatasusunan dan tatasusunan boleh memudahkan untuk membina keadaan pertanyaan yang kompleks.
2.1 Keadaan rentetan
Format sintaks keadaan rentetan ialah: nilai operator nama medan. Contohnya:
$this->ModelName->find('first', array( 'conditions' => array('name = ?' => 'Tom') ));
Dalam contoh di atas, syarat pertanyaan ialah "name='Tom'".
2.2 Keadaan tatasusunan
Format sintaks keadaan tatasusunan ialah: tatasusunan(nama medan => tatasusunan(pengendali => nilai)). Contohnya:
$this->ModelName->find('first', array( 'conditions' => array('name' => array('=' => 'Tom')) ));
Dalam contoh di atas, syarat pertanyaan juga ialah "name='Tom'".
Keadaan tatasusunan juga boleh menyokong pengendali logik seperti DAN, ATAU, BUKAN, dsb., yang boleh digunakan untuk membina keadaan pertanyaan yang lebih kompleks. Contohnya:
$this->ModelName->find('all', array( 'conditions' => array( 'OR' => array( array('name' => 'Tom'), array('age >=' => 20) ) ) ));
Dalam contoh di atas, syarat pertanyaan ialah "nama='Tom' ATAU umur>=20".
Hasil pertanyaan boleh dikembalikan sebagai tatasusunan atau jenis objek.
3.1 Kembalikan jenis tatasusunan
Secara lalai, hasil pertanyaan ialah jenis tatasusunan. Contohnya: $result yang dikembalikan oleh
$result = $this->ModelName->find('first', array( 'conditions' => array('name = ?' => 'Tom') ));
ialah tatasusunan, dan nilai medan dalam hasilnya boleh diakses terus melalui subskrip. Contohnya:
echo $result['name'];
3.2 Mengembalikan jenis objek
Jika anda ingin mengembalikan jenis objek, anda boleh menetapkan atribut $useTable model kepada palsu dan menentukan jenis pulangan sebagai 'first' atau 'all' apabila menggunakan kaedah cari(). Contohnya: $result yang dikembalikan oleh
class ModelName extends AppModel { public $useTable = false; } $result = $this->ModelName->find('first', array( 'conditions' => array('name = ?' => 'Tom'), 'type' => 'object' ));
ialah objek, dan anda boleh terus memanggil kaedah objek untuk mengakses nilai medan dalam hasilnya. Contohnya:
echo $result->name;
Artikel ini menyediakan pengenalan terperinci kepada pertanyaan ORM dalam CakePHP, termasuk kaedah pertanyaan yang biasa digunakan, syarat pertanyaan, pemprosesan hasil pertanyaan, dsb. ORM ialah salah satu komponen terpenting dalam rangka kerja CakePHP Penggunaan ORM yang betul boleh meningkatkan kecekapan pembangunan dan prestasi program.
Atas ialah kandungan terperinci Bagaimana untuk mengendalikan pertanyaan ORM dalam CakePHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!