ホームページ  >  記事  >  データベース  >  Laravel 5.4 で新しい一致を作成するときに「フィールド 'user_id' にはデフォルト値がありません」というエラーが表示されるのはなぜですか?

Laravel 5.4 で新しい一致を作成するときに「フィールド 'user_id' にはデフォルト値がありません」というエラーが表示されるのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-07 19:54:03430ブラウズ

Why am I getting the error

エラー: Laravel 5.4 の「フィールド 'user_id' にはデフォルト値がありません」

質問:

Deal オブジェクトを使用して新しい一致を作成しようとすると、次のエラーが発生します:

QueryException in Connection.php line 647:
SQLSTATE[HY000]: General error: 1364 Field 'user_id' doesn't have a default value (SQL: insert into matches (deal_id) values (1))

空の $guarded 配列があるにもかかわらず、このエラーが発生するのはなぜですか?

答え:

$guarded 配列は、明示的に指定されたものを除くすべてのフィールドへの一括代入を防ぎます。この問題を解決するには、$guarded 配列を削除し、代わりに $fillable 配列を定義します。

解決策:

Match クラスに次のコードを追加します。

protected $fillable = ['user_id', 'deal_id'];

これにより、新しいマッチングの作成に必要な user_id および deal_id フィールドへの一括割り当てが可能になります。

以上がLaravel 5.4 で新しい一致を作成するときに「フィールド 'user_id' にはデフォルト値がありません」というエラーが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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