Bagaimana untuk Menggunakan Fungsi MySQL FIELD dengan Doktrin 2?

Linda Hamilton
Lepaskan: 2024-10-30 04:54:03
asal
965 orang telah melayarinya

How to Use the MySQL FIELD Function with Doctrine 2?

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan