Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Invalid argument supplied for foreach() #30

Open
Andreslav opened this issue Dec 29, 2018 · 2 comments
Open

Invalid argument supplied for foreach() #30

Andreslav opened this issue Dec 29, 2018 · 2 comments

Comments

@Andreslav
Copy link

Andreslav commented Dec 29, 2018

Здравствуйте!

yii\base\ErrorException: Invalid argument supplied for foreach() in /var/www/u46770/data/www/vendor/getjump/vk/src/getjump/Vk/Response/Response.php:41 Stack trace: #0 /var/www/u46770/data/www/vendor/getjump/vk/src/getjump/Vk/Response/Response.php(41): yii\base\ErrorHandler->handleError(2, 'Invalid argumen...', '/var/www/u46770...', 41, Array) #1 /var/www/u46770/data/www/vendor/getjump/vk/src/getjump/Vk/Response/Api.php(25): getjump\Vk\Response\Response->__construct(1, false)
...

VK Возвращает ответ вида:

{
"response": 1
}

Полагаю, __construct() пытается обработать его, как массив.

public function __construct($data, $callback = false)
    {
        foreach ($data as $key => $value) {
            if (property_exists($this, $key)) {
                continue;
            }

            $this->{$key} = $value;
            $this->extendedFields[] = $key;
        }
...

Что порекомендуете?

@seryozhasa
Copy link

seryozhasa commented Jan 14, 2019

Та же ситуация, почему то от вк иногда не массив приходит

@Andreslav
Copy link
Author

Andreslav commented Jan 14, 2019

Та же ситуация, почему то от вк иногда не массив приходит

Всё по документации, вк не всегда возвращает массив, что автор видимо не учёл.

Я решил проблему по-своему:

if (is_array($data)) {
    foreach ($data as $key => $value) {
        if (property_exists($this, $key)) {
            continue;
        }

        $this->{$key} = $value;
        $this->extendedFields[] = $key;
    }
} else {
    $this->val = $data;
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants