Laravel 5.4: エラー「フィールドにデフォルト値がありません」
問題:
Deal オブジェクトを通じて新しい Match オブジェクトを作成しようとすると、「フィールド 'user_id' にはデフォルト値がありません」というエラーが表示されます。 Match クラスの $guarded 配列が空の配列に設定されていますが、これでは問題は解決されません。
解決策:
このエラーは、データベース テーブルが一致には user_id 列に null 以外の値が必要です。これを解決するには、Match クラスを更新して、ガードされたフィールドの代わりに入力可能なフィールドを指定します。
protected $fillable = ['user_id', 'deal_id'];
説明:
Laravel では、デフォルトで、すべてのフィールドがガードされており、一括割り当てできないことを意味します。これはセキュリティ上の脆弱性を防ぐためです。入力可能な配列を定義することにより、どのフィールドを一括割り当てできるかを指定することになります。この場合、新しい Match オブジェクトを作成するときに設定できるのは、user_id フィールドと deal_id フィールドだけです。
ガードされた配列の代わりに入力可能な配列を使用することで、user_id フィールドを設定できるようになります。新しいマッチを作成するとき。これによりエラーが解決され、新しい一致を正常に作成できるようになります。
以上がLaravel 5.4 で一致オブジェクトを作成するときに「フィールドにデフォルト値がありません」というエラーが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。