純粋な(サポートされていない)列挙型による Laravel 検索
P粉773659687
P粉773659687 2024-02-03 20:19:05
0
1
449

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

リーリー

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

が発生します。

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

リーリー

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

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

P粉773659687
P粉773659687

全員に返信(1)
P粉946437474

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

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

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

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

リーリー

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

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

が登場する前は、定数やその他のトリックを使用していました。
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート