Обновление со значениями по умолчанию для необнуляемых полей - PullRequest
0 голосов
/ 28 апреля 2018

В моей таблице есть поле sample, которое имеет значение по умолчанию, но это поле не примет значение NULL.

Когда я обновляю свою форму и оставляю эти поля пустыми

$model->update($request->all()); 

возвращает ошибку

Столбец 'sample' не может быть пустым (SQL: обновление mytable set updated_at = 2018-04-28 11:13:46, sample =, name = «тест», где id = 1)

Как лучше всего обновить модель значениями по умолчанию для незаполненных полей?

Ответы [ 3 ]

0 голосов
/ 28 апреля 2018

Я думаю, что вы сначала проверяете образец поле get null, а затем устанавливаете значение по умолчанию.

if (empty($request->get('sample', null))) {
    $request->replace(['sample' => '-- Your default value --']);
}

Тогда

$model->update($request->all());

Спасибо.

0 голосов
/ 28 апреля 2018

Используйте это для удаления значений null из вашего ввода:

$input = array_filter($request->all(), function($value) {
    return !is_null($value);
});
$model->update($input); 
0 голосов
/ 28 апреля 2018

Вы можете отфильтровать массив $ request, чтобы избавиться от пустых входных значений, с помощью функции фильтра массива:

$model->update(array_filter($request->all())); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...