Как исправить ошибку Illegal offset type?

298
27 августа 2018, 15:10

( ! ) Warning: Illegal offset type in UserController.php on line 56

Эта ошибка возникает во время перебора массива foreach ($validation->getMessages() as $message)а конкретно ее причина $message->getMessage()

$response += [
                    $message->getField() =>
                        $message->getMessage()
                ];

var_dump($message->getMessage())

string 'Имя персонажа занято другим игроком' (length=66)

Весь код:

public function register()
{
    $user = new User();
    $response = [];
    $data = $this->request->getJsonRawBody();
    $data = json_decode(json_encode($data), True);
    if ($data == true) {
        $validation = $user->validateRegistrationData($data);
        if (!count($validation->getMessages())) {
            $user->register($data);
           return $this->createOkResponse();
        } else {
            foreach ($validation->getMessages() as $message) {
                $response += [
                    $message->getField() =>
                        $message->getMessage()
                ];
            }
            return $this->createArrayResponse($response, 'errors');
        }
    }else {
        throw new \Exception('No post-data provided',ErrorCodes::POST_DATA_NOT_PROVIDED);
    }
}

Целый день крутил вертел, но так и не смог решить проблему. Ценным будет любой ваш совет.

Answer 1

А что вы хотите достичь кодом?

$a=[];
$a+=[''];

Я не знаю где вы могли видеть такую конструкцию, но если вы хотите добавить в массив элемент на php то это делается несколько иным способом

$a=[];
$a[]=[''];

В крайнем случае

$a[$b]=[''];
READ ALSO
Как вырезать текст на php? [дубликат]

Как вырезать текст на php? [дубликат]

На данный вопрос уже ответили:

223
C++: не хватает точности вычислений?

C++: не хватает точности вычислений?

У меня стояла следующая задача:

209
Ошибка в FindWindowA и FindWindow

Ошибка в FindWindowA и FindWindow

Как сделать подключение string к FindWindowA string WindowNames; string ClassNames;?

175