【发布时间】:2018-10-28 15:22:18
【问题描述】:
我有一个简单的 API 调用,它应该接受来自 Message 类型的请求参数。我实际上在$data 中得到的是array
...
/**
* @param Message $data Message to push {@from body}
*
* @url POST uploadedFile
* @return bool
*/
public function uploadedFile(Message $data) {
return $this->send(...);
}
}
class Message
{
/**
* @var string */
private $action;
/**
* @var array object to return
*/
private $parameters;
/**
* @var array $type {@type int}
*/
private $type;
/**
* @var string $message {@max 50}
*/
private $message;
}
这是我的 json:
{
"action": "test",
"parameters": [],
"type": [1,2],
"message": "test"
}
这是我得到的错误:
Fatal error: Uncaught TypeError: Argument 1 passed to FCM::uploadedFile() must be an instance of Message, array given in ... on line 22
【问题讨论】:
-
创建一个工厂来实例化
Message(添加getter和setter)?这里的实际问题是什么? -
这是一个 API 调用,我使用 json 发送请求,但它未被识别为 Message 对象。 Restler 通常根据 PHP 注释参数进行强制转换。
-
看方法的注释和名称,你这里是上传文件吗?还有用的是什么版本的restler?
-
这只是一个通知,文件已上传。 Resler 是版本 3 RC6