Laravel - проверьте значение перед проверкой и обновите значение запроса, так как значение по умолчанию БД игнорируется - PullRequest
0 голосов
/ 02 апреля 2020

в моем 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...