为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
蝴蝶刀刀 2023-04-21 10:32:20
所以我有以下代码: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 都不为空?填充所有字段。
查看完整描述

2 回答

?
慕神8447489

TA贡献1780条经验 获得超1个赞

你可以试试这个:


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


查看完整回答
反对 回复 2023-04-21
?
暮色呼如

TA贡献1853条经验 获得超9个赞

我知道你已经接受了答案。这是实现同一件事的一种略有不同的方式(如果我正确理解了这个问题)


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;

}


查看完整回答
反对 回复 2023-04-21
  • 2 回答
  • 0 关注
  • 79 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信