Rumah  >  Soal Jawab  >  teks badan

Carian Laravel melalui penghitungan tulen (tidak disokong).

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粉773659687P粉773659687233 hari yang lalu369

membalas semua(1)saya akan balas

  • P粉946437474

    P粉9464374742024-02-04 12:19:52

    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

    balas
    0
  • Batalbalas