Carian Laravel melalui penghitungan tulen (tidak disokong).
P粉773659687
P粉773659687 2024-02-03 20:19:05
0
1
431

Saya cuba melakukan carian dalam pangkalan data melalui medan enum tulen:

enum Enum1 {
    case Case1;
}

Model::query()->where('enum1', Enum1::Case1)->first()

dan ia tidak berfungsi, menyebabkan ralat Error Object of class Enum1 Could not be conversion to string.

Apabila saya mencari melalui enum yang disokong ia berfungsi:

enum Enum2: int {
    case Case1 = 1;
}

Model::query()->where('enum2', Enum2::Case1)->first()

Memberi nilai pada Model->casts 中,为 Enum1Enum2.

Saya tahu, saya boleh mencari mengikut Enum1::Case1->name tetapi bukan itu yang saya cari. Jika boleh, saya ingin mendapatkan pelakon yang sesuai. Apakah cara paling mudah/betul untuk menangani masalah ini?

P粉773659687
P粉773659687

membalas semua(1)
P粉946437474

Saya rasa masalah anda ialah MySQL tidak mempunyai sokongan asli untuk medan Enum.

Fasih dalam klausa where juga menjangkakan parameter kedua ialah rentetan atau jenis data "biasa" lain.

Mungkin pada satu ketika Laravel fasih akan menyokong Enums, tetapi saya tidak fikir itu berlaku pada masa ini.

Saya tidak nampak salah menggunakan:

enum Enum2: int {
    case Case1 = 1;
}

Artikel ini di sini sebenarnya membincangkan cara mengakses DB dengan Enums, jadi sila baca.

Lagipun, tujuan penghitungan adalah untuk menjadikan kod lebih mudah dibaca. Kami menggunakan pemalar dan helah lain sebelum ia sampai ke PHP8

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan