我最近完成了将我的 Parse PHP 应用程序迁移到 Google Cloud 托管的 Parse 服务器。从那时起,在大多数情况下,像ParseObject::saveAll()
,ParseObject::destroyAll()
等批处理操作开始失败。我正在考虑将其报告为 GitHub 上的错误,但我想确保它不仅仅是我的实例。
我什至无法重现destroyAll 的 GitHub PHP SDK 测试代码:
...
$o1 = ParseObject::create('TestObject');
$o2 = ParseObject::create('TestObject');
$o3 = ParseObject::create('TestObject');
ParseObject::saveAll([$o1, $o2, $o3]);
ParseObject::destroyAll([$o1, $o2, $o3]);
...
这段代码和我的应用程序对批处理操作的使用都会在 PHP 上引发以下类型的异常(在本例中,错误是由 saveAll 引发的):
未捕获的异常“Parse\ParseException”与消息“无法路由批处理路径 /1/classes/TestObject”
调试显示 Parse Server 返回错误代码 107,根据文档,这意味着无效的 JSON。我不熟悉 REST API,但是对于这个例子,发送的数据是
{"requests":[{"method":"POST","path":"/1/classes/TestObject","body":[]},{"method":"POST","path":" /1/classes/TestObject","body":[]},{"method":"POST","path":"/1/classes/TestObject","body":[]}]}
这是有效的 JSON。
批量操作在迁移之前正常工作。PHP版本是5.6。任何帮助表示赞赏。如果错误可以重现,我将在 GitHub 上创建一个问题。