Задать вопрос
@Minusator

Array_unshift() expects parameter 1 to be array, null given >. Как исправить?

Добрый день!
Есть строка, которая показывает при клике - номер телефона пользователя.
Но при выполнении кода получаю вышеуказанную ошибку

public function userDataSidebar($nUserID, $aFieldsEx = array())
    {
        $aFields = array('user_id as id', 'name', 'login', 'shop_id', 'created', 'avatar', 'sex',
                         'phones', 'phone_number', 'phone_number_verified', 'skype', 'icq');
        if (!empty($aFieldsEx)) {
            $aFields = array_merge($aFields, $aFieldsEx);
        }
        $aData = $this->userData($nUserID, $aFields);
        if (!empty($aData)) {
            $aData['link'] = Users::urlProfile($aData['login']);
            $aData['avatar'] = UsersAvatar::url($nUserID, $aData['avatar'], UsersAvatar::szNormal, $aData['sex']);
            if (Users::registerPhoneContacts() && $aData['phone_number'] && $aData['phone_number_verified']) {
                array_unshift($aData['phones'], array('v'=>$aData['phone_number'],'m'=>mb_substr($aData['phone_number'], 0, 2) . 'x xxx xxxx'));
            }
        }

        return $aData;
    }


Вывод
<div class="v-author__contact_content j-c-phones">
                    <? foreach($contacts['phones'] as $v) { ?><span class="hide-tail"><?= $v ?></span><? } ?>
                </div>

JS
var expanded = false, expandedProccess = false;
        var $expandLinks = $container.find('.j-v-contacts-expand-link');
        var $expandBlocks = $container.find('.j-v-contacts-expand-block');
        $expandLinks.on('click', function(e){ nothing(e);
            if( expanded || expandedProccess ) return;
            bff.ajax(bff.ajaxURL('bbs','item-contacts'), {page:'view',id:o.item_id,mod:o.mod,hash:app.csrf_token}, function(resp, errors){
                if(resp && resp.success) {
                    expanded = true;
                    $expandLinks.hide();
                    var types = ['phones','skype','icq'];
                    for( var i in types) {
                        var type = types[i];
                        if( resp.hasOwnProperty(type) ) {
                            $expandBlocks.find('.j-c-'+type).html(resp[type]);
                        }
                    }
                } else {
                    app.alert.error(errors);
                }
            }, function(p){ expandedProccess = p; });
        });


Благодарю за помощь!
  • Вопрос задан
  • 576 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 1
@cybernoob
if (Users::registerPhoneContacts() && $aData['phone_number'] && $aData['phone_number_verified'])

заменить на
if (Users::registerPhoneContacts() && $aData['phone_number'] && $aData['phone_number_verified'] && is_array($aData['phones']))
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 дек. 2024, в 20:40
10000 руб./за проект
22 дек. 2024, в 20:34
3000 руб./за проект
22 дек. 2024, в 20:12
10000 руб./за проект