Использую REST API XFRM, при попытке создать ресурс, появляется ошибка (ресурс при этом создается):
Трассировка стека:
Содержимое запроса:
Ошибку можно исправить, если в файле ResourceItem.php на строке 1360 и так далее заменить
на
Но, мне кажется, это какое-то странное решение править файлы движка, тем более, что при проверке файлов XenForo заметит, что что-то не так и укажет на это + cron отвалится.
Использую node.js в качестве бэкенда, если это важно. Код следующий:
Есть ли какое-либо решение этой проблемы без правки файлов движка?
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"
}
}
$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);
});
Последнее редактирование: