ホームページ  >  記事  >  データベース  >  Laravel 5.2: 文字列の主キーが 0 に変換されるのはなぜですか?

Laravel 5.2: 文字列の主キーが 0 に変換されるのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-26 01:09:10107ブラウズ

Laravel 5.2: Why is my String Primary Key Converting to 0?

Laravel 5.2: カスタム主キー変換の問題

Laravel 5.2 の Eloquent ORM で文字列をカスタム主キーとして利用する場合、から取得するときにキー値が 0 に変換されるという問題が発生する可能性があります。 database.

説明:

Laravel は、データベースの列の型に一致するように属性値を自動的にキャストします。デフォルトでは、自動インクリメント主キーは整数とみなされます。ただし、この場合、主キーとして文字列を使用しているため、値が誤って変換されます。

解決策:

この問題を解決するには、次のようにします。主キーが文字列であり、自動的にインクリメントされないことを明示的に指定する必要があります。これを行うには、次のコードをモデルに追加します。

protected $primaryKey = 'your_key_name';
public $incrementing = false;

必ず 'your_key_name' を主キー列の実際の名前に置き換えてください。

詳しい説明:

Laravel 6.0 以降では、$keyType も設定する必要がありますproperty to 'string':

protected $keyType = 'string';

これにより、主キーが文字列であることが明示的に指定され、潜在的な型変換が防止されます。

このソリューションを実装すると、文字列を使用できるようになります。変換の問題が発生することなく、Laravel Eloquent モデルのカスタム主キーとして使用できます。

以上がLaravel 5.2: 文字列の主キーが 0 に変換されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。