Доброго времени суток!
На данный момент тестирую сервис для добавления фильтров текущего аттрибута данных в БД. Но он сперва проверяет наличие аттрибута в базе фильтров. Если его нет, то он добавляет аттрибут в СУБД, а удаляя его из базы пустых аттрибутов в Redis. Дальше - он выполняет операции по добавлению запрашиваемого фильтра.
Первоначальные действия сервиса выглядят так(они выполняются, благодаря библиотеке
yii2-curl:
$attributeId = strtolower($pm['attribute']);
$isDataState = (new curl\Curl)->post(((!empty($_SERVER['HTTPS'])) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] .'/admin/api/dataServices/filters/notEmptyAttribute/show');
$attributeGenerator = (new curl\Curl)->post(((!empty($_SERVER['HTTPS'])) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] .'/admin/api/dataServices/filters/Attribute/send');
$microQuery = [
'generatorQuery' => [
'parameters' => [
'attribute' => $attributeId,
'group' => 'data'
]
],
'validQuery' => [
'parameters' => [ 'attribute' => $attributeId ]
]
];
$idsSend = $isDataState->setOption(CURLOPT_POSTFIELDS, http_build_query(['svcQuery' => JSON::encode($microQuery['validQuery'])]));
$resValid = JSON::decode($idsSend);
if($resValid['avabillityData'] == 1){ $agSend = $attributeGenerator->setOption(CURLOPT_POSTFIELDS, http_build_query(['svcQuery' => JSON::encode($microQuery['generatorQuery'])])); }
if((!$idsSend && !$agSend) || !$idsSend || !$agSend){
\Yii::$app->response->statusCode = 502;
$serviceResponse[] = 'Operation service error!';
}
И при его тестировании в клиентской части, XDebug принёс ошибку:
"Call to a member function setOption() on string", ссылаясь на 18-ю строчку приведенного выше примера кода. Как вызвать метод функции, чтобы он не приносил результат в строчном типе? Заранее вам спасибо!