Ralat: "Medan 'user_id' tidak mempunyai nilai lalai" dalam Laravel 5.4
Soalan:
Apabila cuba mencipta padanan baharu menggunakan objek Deal, ralat berikut berlaku:
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))
Walaupun mempunyai tatasusunan $guarded kosong, mengapa ralat ini dibangkitkan?
Jawapan:
Tatasusunan $guarded menghalang penetapan jisim kepada semua medan kecuali yang dinyatakan secara jelas. Untuk menyelesaikan isu ini, alih keluar tatasusunan $guarded dan tentukan tatasusunan $fillable.
Penyelesaian:
Dalam kelas Match, tambahkan yang berikut:
protected $fillable = ['user_id', 'deal_id'];
Ini akan membenarkan penugasan besar-besaran kepada medan user_id dan deal_id, yang diperlukan untuk mencipta padanan baharu.
Atas ialah kandungan terperinci Mengapa saya mendapat ralat 'Bidang 'user_id' tidak mempunyai nilai lalai' semasa membuat padanan baharu dalam Laravel 5.4?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!