php - 迁移后无法执行批量操作

标签 php json parse-platform parse-server

我最近完成了将我的 Parse PHP 应用程序迁移到谷歌云托管的 Parse Server。从那时起,ParseObject::saveAll()ParseObject::destroyAll() 等批处理操作开始在大多数情况下失败。我正在考虑将此作为 GitHub 上的错误报告,但我想确保这不仅仅是我的实例。

我什至无法重现 GitHub PHP SDK test code for destroyAll :

...
$o1 = ParseObject::create('TestObject');
$o2 = ParseObject::create('TestObject');
$o3 = ParseObject::create('TestObject');
ParseObject::saveAll([$o1, $o2, $o3]);
ParseObject::destroyAll([$o1, $o2, $o3]);
...

此代码和我的应用程序对批处理操作的使用都会在 PHP 上抛出以下类型的异常(在此示例中,错误由 saveAll 抛出):

Uncaught exception 'Parse\ParseException' with message 'cannot route batch path /1/classes/TestObject'

调试显示 Parse Server 返回错误代码 107,根据 the documentation表示无效的 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 上创建问题。

最佳答案

解决方案是编写 /parse/classes/ClassName 而不是 /1/classes/ClassName。所以在迁移之后,详细信息在 https://parse.com/docs/rest/guide 的文档中说明。 , 已经过时了。

!!!这可能会在未来改变!!!关注这个问题:https://github.com/ParsePlatform/parse-php-sdk/issues/229

关于php - 迁移后无法执行批量操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35761199/

相关文章:

php - 使用PHP从HTML表单向MySQL插入数据报错

java - 空对象引用上的 Location.getLatitude()

php - 使用输出缓冲区的函数在开发中有效,但在生产中无效

php - Uncaught Error : Undefined constant "FILTER_SANITIZE_MAGIC_QUOTES"

php - 为什么 $x=5; $x+++$x++;在 PHP 中等于 11?

ios - 无法按照通过 Parse.com 使用 createdAt 创建的对象的顺序获取对象 - Swift 1.2 - Xcode 6.4

java - Android:将位图从 Parse 分配给 ImageView 时卡住了

ruby-on-rails - 使用 Ruby 搜索 JSON 响应

php - 从数据库中存储的路径显示图像

javascript - 对象的JSON.stringify仅返回{}