猿问

填充数组不管是否有空检查

所以我有以下代码:


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)不顾一切地打电话并在空支票上预填充我的所有字段,但出于某种原因我似乎无法弄清楚。


所以继承人的逻辑:


空 hire_date?设置 ''。

空生日?设置 ''。

填充其余字段..


hire_date 和 birthday 都不为空?填充所有字段。


蝴蝶刀刀
浏览 101回答 2
2回答

慕神8447489

你可以试试这个: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更新新数组以确定应填充或不填充的内容。

暮色呼如

我知道你已经接受了答案。这是实现同一件事的一种略有不同的方式(如果我正确理解了这个问题)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;}
随时随地看视频慕课网APP
我要回答