ホームページ  >  に質問  >  本文

純粋な(サポートされていない)列挙型による Laravel 検索

純粋な列挙型フィールドを使用してデータベース内で検索を実行しようとしています:

リーリー

これは機能せず、エラー Error Object of class Enum1 Could not be Convert to string.

が発生します。

サポートされている列挙型で検索すると機能します:

リーリー

Model->casts で、Enum1Enum2 の値を指定します。

Enum1::Case1->name で検索できることはわかっていますが、それは私が探しているものではありません。可能であれば、適切な俳優を配置したいと考えています。 この問題に対処する最も簡単/正しい方法は何ですか?

P粉773659687P粉773659687282日前408

全員に返信(1)返信します

  • P粉946437474

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

    あなたの問題は、MySQL が Enum フィールドをネイティブにサポートしていないことだと思います。

    where 句の Eloquent では、2 番目の引数が文字列またはその他の「一般的な」データ型であることも想定されます。

    おそらく、ある時点で Laravel eloquent は Enum をサポートするでしょうが、現時点ではそうではないと思います。

    以下を使用しても何も問題はありません:

    リーリー

    こちらの記事こちらで実際にEnumsでDBにアクセスする方法について解説していますので、ぜひ読んでみてください。

    列挙の目的は、結局のところ、コードを読みやすくすることです。「関心の分離」の原則を使用して、コードを読みやすくします。 PHP8

    が登場する前は、定数やその他のトリックを使用していました。

    返事
    0
  • キャンセル返事