عمل نکردن مقدار پیش فرض برای یک attribute
سلام و عرض ادب
برای یک attribute مقدار اولیه تعریف میکنم اما زمانی که از فرم null ارسال میشه بجای اینکه مقدار پیش فرض در جدول قرار بگیره، پیغام خطا نمایش داده میشه
مشخصات جدول
$table->id();
$table->integer('number');
$table->timestamps();
فرم
<form action="/test/insert" method="post">
@csrf
<input type="number" name="number" value="1">
<button type="submit">insert</button>
</form>
تعریف مقدار پیش فرض در مدل Test
protected $fillable = [ 'number' ];
protected $attributes = [ 'number' => 1 ];
از این روش هم استفاده کردم اما فرقی نکرد
$test->number=$request->input('number', 1);
اینم نتیجه ای که بعد از ارسال null دریافت میکنم
Integrity constraint violation: 1048 Column 'number' cannot be null
(SQL: insert into `tests` (`number`, `updated_at`, `created_at`) values (?, 2020-03-30 06:30:51, 2020-03-30 06:30:51))
نقل قول: عمل نکردن مقدار پیش فرض برای یک attribute
دیتابیس یه چیزی داره به اسم strict mode که وقتی فعال باشه مقادیر دیفالت رو قبول نمیکنه
برو تو config/database.php
'strict' => true
رو false کن
اگه نشد برو از تو phpmyadmin توی دیتابیست و این کوئری رو اجرا کن
set global sql_mode='';
نقل قول: عمل نکردن مقدار پیش فرض برای یک attribute
امتحان کردم نشد
البته اینم بگم چه قبل و چه بعد از این کارها ، مقادیر دیفالتی که برای چک باکسها تعیین کردم به درستی کار میکنه
حالا چه مشکلی با این نوع ورودی داره نمیدونم
در هر حال ممنون از پاسختون