Laravel list () с ошибкой функции each () с устаревшей функцией - PullRequest
0 голосов
/ 30 октября 2019

Я немного запутался в том, как альтернативно заменить функцию each (), поскольку она устарела, и я знаю об этом и исправил часть ошибки while( list() = each() ) в моем проекте. Однако, какой другой вариант я должен использовать для этого случая:

foreach($new_id as $new_ids) {
    list($key,$valueAddress) = each($address);
    list($key,$valueCity) = each($city);
    list($key,$valueState) = each($state);
    if(isset($_POST['publicOnly'])) {
        list($key,$valuePublicOnly) = each($publicOnly);
    } else {
        $valuePublicOnly = 0;
    }

    $propertyAddress = PropertyAddressManagement::find($new_ids);
        $propertyAddress->address = $valueAddress;
        $propertyAddress->city = $valueCity;
        $propertyAddress->state = $valueState;
        $propertyAddress->publicOnly = $valuePublicOnly;
    $propertyAddress->save();
}

1 Ответ

1 голос
/ 30 октября 2019

Вы не используете ключи, поэтому просто получите текущее значение и затем перейдите к следующему:

foreach($new_id as $new_ids) {
    $propertyAddress = PropertyAddressManagement::find($new_ids);
        $propertyAddress->address = current($address);
        $propertyAddress->city = current($city);
        $propertyAddress->state = current($state);
        $propertyAddress->publicOnly = isset($_POST['publicOnly']) ? current($publicOnly) : 0;
    $propertyAddress->save();

    next($address); next($city); next($state); next($publicOnly);
}

Однако, если ключи одинаковы во всем массиве, то я думаю, что на самом делеэто должно работать:

foreach($new_id as $key => $new_ids) {
    $propertyAddress = PropertyAddressManagement::find($new_ids);
        $propertyAddress->address = $address[$key];
        $propertyAddress->city = $city[$key];
        $propertyAddress->state = $state[$key];
        $propertyAddress->publicOnly = isset($_POST['publicOnly']) ? $publicOnly[$key] : 0;
    $propertyAddress->save();
}
...