Menggunakan Fungsi FIELD Doktrin 2 Mengikut Susunan Oleh
Doktrin 2 tidak menyokong fungsi FIELD MySQL secara asli. Walau bagaimanapun, terdapat sambungan yang tersedia yang menambahkan fungsi ini.
Menggunakan DoctrineExtension
Untuk menggunakan fungsi FIELD dalam Doctrine 2, anda boleh memasang pakej DoctrineExtensions. Setelah dipasang, anda perlu menambah konfigurasi berikut pada konfigurasi Doktrin anda:
<code class="php">$doctrineConfig = $this->em->getConfiguration(); $doctrineConfig->addCustomStringFunction('FIELD', 'DoctrineExtensions\Query\Mysql\Field');</code>
Selepas menambah konfigurasi ini, anda boleh menggunakan fungsi FIELD dalam pertanyaan Doktrin anda.
Contoh
Contoh berikut menunjukkan cara menggunakan fungsi FIELD untuk menyusun pertanyaan mengikut set nilai:
<code class="php">$qb = $em->createQueryBuilder(); $qb ->select("r, field(r.id, " . implode(", ", $ids) . ") as HIDDEN field") ->from("Entities\Round", "r") ->where($qb->expr()->in("r.id", $ids)) ->orderBy("field");</code>
Pertanyaan ini akan mengembalikan hasil yang dipesan mengikut nilai FIELD, yang akan menjadi 1 untuk nilai pertama dalam tatasusunan $ids, 2 untuk nilai kedua dan seterusnya.
Nota:
Fungsi FIELD hanya boleh digunakan dalam klausa SELECT, WHERE, dan BETWEEN. Ia tidak boleh digunakan dalam klausa ORDER BY. Untuk mengatasi had ini, contoh di atas menggunakan medan tersembunyi untuk menyimpan nilai FIELD.
Atas ialah kandungan terperinci Bagaimana untuk Menggunakan Fungsi MySQL FIELD dengan Doktrin 2?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!