CakePHP ialah rangka kerja PHP yang popular, manakala Eloquent ialah alat ORM (Object Relational Mapping) yang digunakan dalam rangka kerja Laravel. Walaupun CakePHP datang dengan alat ORMnya sendiri, sesetengah pembangun mungkin lebih suka sintaks dan pengalaman Eloquent. Jika anda juga ingin mencuba menggunakan Eloquent dengan CakePHP, maka artikel ini akan memberikan anda sedikit panduan.
Pertama, anda perlu menggunakan Composer untuk memasang Eloquent. Jalankan arahan berikut dalam baris arahan:
composer require illuminate/database
Selepas pemasangan selesai, buka fail app/Config/bootstrap.php dan tambahkan kod berikut:
require ROOT . DS . 'vendor' . DS . 'autoload.php'; use IlluminateDatabaseCapsuleManager as Capsule; $capsule = new Capsule; $capsule->addConnection([ 'driver' => 'mysql', 'host' => 'localhost', 'database' => 'my_database', 'username' => 'root', 'password' => 'root', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', ]); $capsule->setAsGlobal(); $capsule->bootEloquent();
Coretan kod ini akan dimulakan Fasih dan menyambung kepada pangkalan data anda. Pastikan anda menggantikan butiran sambungan untuk menyambung ke pangkalan data sebenar anda.
Dalam Eloquent, setiap jadual boleh dipetakan kepada model yang sepadan. Kita perlu mencipta model untuk mewakili setiap jadual CakePHP yang ingin kita kendalikan. Contohnya, jika anda mempunyai jadual bernama users
, maka anda perlu mencipta model User
. Anda boleh mencipta fail bernama Users.php
di bawah apl laluan/Model/ dan tulis kod berikut:
use IlluminateDatabaseEloquentModel as Eloquent; class User extends Eloquent { protected $table = 'users'; }
Dalam kelas model ini, kami memberitahu Eloquent bahawa model ini sepadan dengan jadual users
. Anda juga boleh menentukan kaedah dan sifat lain yang berkaitan dengan model dalam model User
.
Setelah kami mempunyai model, kami boleh menggunakannya untuk melaksanakan operasi pangkalan data. Berikut ialah beberapa contoh kaedah untuk menggunakan Eloquent untuk operasi CRUD biasa:
// 创建一条新记录 $user = new User; $user->name = 'John'; $user->email = 'john@example.com'; $user->save(); // 通过id获取一条记录 $user = User::find(1); // 更新一条记录 $user = User::find(1); $user->email = 'new_email@example.com'; $user->save(); // 删除一条记录 $user = User::find(1); $user->delete();
Sintaks untuk operasi ini adalah sama seperti menggunakan Eloquent dalam Laravel. Anda boleh menambah kaedah lain pada model anda untuk melaksanakan operasi yang lebih kompleks. Eloquent juga menyokong operasi biasa lain seperti pembina pertanyaan, perhubungan, acara, dsb.
Anda boleh menggunakan pembina pertanyaan Eloquent untuk memudahkan pertanyaan. Menggunakan pembina pertanyaan Eloquent, anda boleh menggunakan kaedah berantai untuk membina pertanyaan. Sebagai contoh, anda boleh menggunakan kod berikut untuk mendapatkan semua pengguna bernama John:
$users = User::where('name', 'John')->get();
Pertanyaan boleh diringkaskan lagi menggunakan kaedah rantai:
$users = User::where('active', 1) ->orderBy('name', 'desc') ->take(10) ->get();
Ini akan mengembalikan 10 pengguna aktif teratas, dengan Isih mengikut nama dalam susunan terbalik.
Jika anda menggunakan perpustakaan atau ciri lain dalam CakePHP, anda mungkin perlu berinteraksi antara CakePHP dan Eloquent. Nasib baik, ini mudah dilakukan. Pelaksanaan pertanyaan Eloquent mengembalikan tatasusunan atau objek PHP standard. Anda boleh menghantar hasil ini ke perpustakaan atau fungsi CakePHP lain, seperti templat paparan atau kaedah Pengawal lain.
Jika anda ingin menghantar hasil pertanyaan Eloquent ke paparan CakePHP, anda boleh menggunakan kod berikut:
// 在CakePHP控制器中 public function index() { $users = User::all(); $this->set('users', $users); } // 在CakePHP视图中 <?php foreach ($users as $user): ?> <div><?= $user->name ?></div> <?php endforeach ?>
Di sini, kami menggunakan Eloquent untuk mendapatkan semua pengguna dan menghantarnya ke Templat paparan CakePHP. Anda boleh menghantar hasil pertanyaan kepada perpustakaan atau fungsi lain dan menggunakan mana-mana fungsi lain dalam CakePHP untuk memprosesnya.
Ringkasan
Eloquent ialah alat PHP ORM popular yang biasa digunakan dalam rangka kerja Laravel. Walau bagaimanapun, jika anda lebih suka sintaks dan pengalaman menggunakan Eloquent, anda juga boleh mengintegrasikannya dengan CakePHP. Menggunakan langkah di atas, kita boleh menggunakan Eloquent dalam CakePHP dengan mudah. Ingatlah bahawa anda perlu menyepadukan Eloquent dengan perpustakaan dan ciri CakePHP yang lain untuk mendapatkan hasil yang terbaik.
Atas ialah kandungan terperinci Bagaimana untuk menggunakan Eloquent dengan CakePHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!