в моем Laravelproject У меня есть форма для обновления данных.
Когда я вставляю «количество», которое должно быть вставлено по умолчанию «1,00» - когда нет специальной записи -> ноль, но БД добавляет ноль вместо значения по умолчанию 1.00 .
Итак, я думал проверить вход перед проверкой, и когда он будет null , я сам заменю его значением по умолчанию.
Я пытался (каждый раз, когда происходило обновление с проверкой):
1)
$name = $request->input('name');
if ($amount == null) {
if ($this->$request->has('amount')) {
$this->merge([
'amount' => 1
]);
}
}
2)
$this->request->merge([
'amount' => 1,
]);
или
$this->request->merge([
'amount' => '1',
]);
Некоторая информация о моей структуре:
Это моя модель DB:
Schema::create('items', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->decimal('amount',10,2)->default('1.00')->nullable();
$table->string('image')->nullable();
$table->string('description')->nullable();
$table->unsignedBigInteger('userID')->nullable();
$table->string('active', 20)->default('is active');
$table->timestamps();
});
Это моя модель товара :
protected $table = 'items';
protected $fillable = ['id','name','amount','image','description','userID','active','created_at','updated_at'];
Это мое обновление:
Items::where('id', '=', $itemID)->first()->update($this->_validate($request));
Это мое подтверждение:
public function _validate(Request $request)
{
$rules = $request->validate([
'name' => 'required|min:2|max:255',
'amount' => '',
'description' => ''
]);
return $rules;
}