Заполнять массив независимо от наличия пустого чека - PullRequest
2 голосов
/ 27 мая 2020

Итак, у меня есть следующий код:

if ($obj->updated_date > $record->updated_date || $mode === 'refresh') {
    if (empty($obj->birthday) || $obj->hire_date) {
        $record->fill([
            'birthday' => '',
            'hire_date' => ''
        ]);
    } else {
        $record->fill($arr);
    }
} else {
    $record->timestamps = false;
}

Где я проверяю, является ли $obj->birthday or $obj->hire_date пустым, а затем определяю их как пустые строки, но вот в чем проблема.

Я хочу иметь возможность вызвать $record->fill($arr) независимо и предварительно заполнить все мои поля в пустом чеке, но по какой-то причине я не могу понять.

Итак, вот лог c:

Пустая дата найма? установить как ''.
Пустой день рождения? установить как ''.
Заполнить остальные поля.

И наем_дата, и на день рождения не пустые? Заполните все поля.

Ответы [ 2 ]

2 голосов
/ 27 мая 2020

Вы можете попробовать следующее:

if ($obj->updated_date > $record->updated_date || $mode === 'refresh') {
    $filllArray = $arr;
    if (empty($obj->birthday) {
        $record->fill([
            'birthday' => ''
        ]);
        unset($filllArray['birthday']);
    }
    if (empty($obj->hire_date)) {
        $record->fill([
            'hire_date' => ''
        ]);
        unset($filllArray['hire_date']);
    }
    $record->fill($filllArray);
} else {
    $record->timestamps = false;
}

Обновление 1: скопируйте $arr в $filllArray и обновите новый массив, чтобы определить, что следует заполнять, а что нет.

1 голос
/ 27 мая 2020

Я знаю, что вы приняли ответ. Это немного другой способ достижения того же (если я правильно понял вопрос)

if ($obj->updated_date > $record->updated_date || $mode === 'refresh') {
    $fa = [];
    empty($obj->birthday) ? $fa['birthday'] = '' : $fa['birthday'] = $obj->birthday;
    empty($obj->hire_date) ? $fa['hire_date'] = '' : $fa['hire_date'] = $obj->hire_date;
    $merged_arr = array_merge($arr, $fa);
    $record->fill($merged_arr);    
} else {
    $record->timestamps = false;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...