Почему «institutionId» в моем старом ответе API представляет собой строку, а в новой версии после обновления PHP, Yii и Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Почему «institutionId» в моем старом ответе API представляет собой строку, а в новой версии после обновления PHP, Yii и

Сообщение Anonymous »

Недавно я обновил стек своего приложения и заметил изменения в ответах API. Ниже приведены подробности изменений версии:

Код: Выделить всё

Component   Old Version New Version
PHP          7.3.0      8.3.0
Yii          2.0.6      2.0.51
MariaDB      10.1.34    11.6.2
В старой версии мой ответ API для идентификатора учреждения выглядел так:

{
"statusCode": 200,
"message": "",
"data": {
"institutionId": "66"
}
После обновления идентификатор учреждения изменился на целое число:

{
"statusCode": 200,
"message": "",
"data": {
"institutionId": 66
}

Вызов API идет чтобы

Код: Выделить всё

public function actionGetInstitutionDetails()
{
$request = Yii::$app->request;
$user = $request->get('userId');
$institutionId = $request->get('institutionId');
$userId =  $user ? $user : yii::$app->user->identity->id;
if ($userId && $institutionId) {

$institutionDetails = ExtendedInstitution::getInstitutionData($institutionId);
$resultSet = [];
$result = new \stdClass();
if ($institutionDetails) {
foreach ($institutionDetails as $key => $value) {
$data = new \stdClass();
$data->institutionId = (!empty($value['id'])) ? $value['id'] : '';
$data->institutionName = (!empty($value['name'])) ? $value['name'] : '';
$data->phoneNumber2 = (!empty($value['phone2'])) ? $value['phone2'] : 'Not available';
$data->email = (!empty($value['email'])) ? $value['email'] : '';
$data->website = (!empty($value['url'])) ? $value['url'] : '';
}
$this->statusCode = 200;
$this->message = '';
$this->data = $data;
return new ApiResponse($this->statusCode, $this->data,$this->message);
}
}
}
И getInstitutionData определен ниже:

Код: Выделить всё

public static function getInstitutionData($institutionId)
{
try {
$institutionDetails = Yii::$app->db->createCommand(
"CALL get_institution(:institutionid)")
->bindValue(':institutionid' , $institutionId )
->queryAll();
return $institutionDetails;

} catch (Exception $e) {
return false;
}
}

CREATE DEFINER=`root`@`%` PROCEDURE `get_institution`(institutionid int)
BEGIN
SELECT
i.id,
i.`name`,
i.pin,
i.institutionlogo,
i.email,
i.url,
i.moreurl,
i.institutiontype AS 'institutiontypeid',
FROM
institution i
WHERE
i.id = institutionid;
END
И ApiResponse приведен ниже:

Код: Выделить всё

class ApiResponse implements \JsonSerializable
{
public $statusCode;
public $data;
public $message = "";

public function __construct($status = null, $data = null, $message = "")
{
$this->statusCode = $status;
$this->message = $message;
$this->data = $data;
}
public static function __set_state($data)
{
$obj = new ApiResponse();
$obj->data = $data["data"];
$obj->message = $data["message"];
$obj->statusCode = $data["statusCode"];
return $obj;
}

/**
* This is the abstract method which returns json encoded data
*/
function jsonSerialize()
{
if (is_null($this->data)) {
$this->data  = new \stdClass();
}
return [
'statusCode' => $this->statusCode,
'message' => $this->message,
'data' => $this->data

];
}
}
Какие могут быть возможные причины этого? и как это исправить глобально в моем перенесенном проекте?

Подробнее здесь: https://stackoverflow.com/questions/793 ... in-the-new
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»