在我的Restler API类中,我有一个像这样定义的对象(有很多其他参数)
class PatchTaskObj extends TaskObj {
/**
* @var bool|null Whether or not this Task should be pinned to the top of the list {@required false}
*/
public $pinned = null;
}
然后我尝试在我的PATCH方法中使用它:
/**
* Updates an existing Task record.
*
* @param int $id The SQL ident of the task you wish to update. {@min 1} {@from path}
* @param PatchTaskObj $info The properties of the Task to update.
*
* @throws RestException 412 Thrown if at least one update isn't passed in.
*
* @status 204
*/
function patch($id, PatchTaskObj $info)
如果我传入true
pinned
属性,它可以正常工作,但如果我通过false
,那么我会从Restler获得400,并显示以下消息:
错误请求:为
指定的值无效info[pinned]
答案 0 :(得分:3)
好的,发现Restler的Validator.php无法按照它的编写方式解析@var属性。如果删除|null
部分,则按预期工作。我已经向github网站提交了一个问题。