Cannot use object of type stdClass as array

Sgoldik

Проверенные
Сообщения
13
Реакции
11
Баллы
5,500
Использую REST API XFRM, при попытке создать ресурс, появляется ошибка (ресурс при этом создается):
Error: Cannot use object of type stdClass as array src/addons/XFRM/Entity/ResourceItem.php:1360
Трассировка стека:
Код:
#0 src/XF/Mvc/Entity/Entity.php(518): XFRM\Entity\ResourceItem->setupApiResultData(Object(XF\Api\Result\EntityResult), 2, Array)
#1 src/addons/XFRM/Api/Controller/ResourceItems.php(90): XF\Mvc\Entity\Entity->toApiResult(2)
#2 src/XF/Mvc/Dispatcher.php(321): XFRM\Api\Controller\ResourceItems->actionPost(Object(XF\Mvc\ParameterBag))
#3 src/XF/Api/Mvc/Dispatcher.php(31): XF\Mvc\Dispatcher->dispatchClass('XFRM:ResourceIt...', 'Post', Object(XF\Api\Mvc\RouteMatch), Object(XFRM\Api\Controller\ResourceItems), NULL)
#4 src/XF/Mvc/Dispatcher.php(100): XF\Api\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Api\Mvc\RouteMatch), Object(XFRM\Api\Controller\ResourceItems), NULL)
#5 src/XF/Mvc/Dispatcher.php(50): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Api\Mvc\RouteMatch))
#6 src/XF/App.php(2178): XF\Mvc\Dispatcher->run()
#7 src/XF.php(390): XF\App->run()
#8 index.php(16): XF::runApp('XF\\Api\\App')
#9 {main}
Содержимое запроса:
Код:
array(4) {
  ["url"] => string(14) "/api/resources"
  ["referrer"] => bool(false)
  ["_GET"] => array(0) {
  }
  ["_POST"] => array(5) {
    ["title"] => string(5) "Fred"
    ["description"] => string(2) "Flintstone"
    ["resource_category_id"] => string(2) "23"
    ["tag_line"] => string(1) "dsa0"
    ["resource_type"] => string(8) "fileless"
  }
}
Ошибку можно исправить, если в файле ResourceItem.php на строке 1360 и так далее заменить
$description['message'];
на
$description -> message;
Но, мне кажется, это какое-то странное решение править файлы движка, тем более, что при проверке файлов XenForo заметит, что что-то не так и укажет на это + cron отвалится.
Использую node.js в качестве бэкенда, если это важно. Код следующий:
JavaScript:
const axios = require('axios');
const querystring = require('querystring');

axios.defaults.headers.post['XF-Api-Key'] = '***';

axios.post('https://***/api/resources', querystring.stringify({
    title: 'Fred',
    description: 'Flintstone',
    resource_category_id: 23,
    tag_line: "dsa0",
    resource_type: "fileless"
})).then(function (response) {
    console.log(response);
}).catch(function (error) {
    console.log(error);
});
Есть ли какое-либо решение этой проблемы без правки файлов движка?
 
Последнее редактирование:
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу