3

我正在使用 Redbean 3.3.7(从网站上下载的一体机),但我在代码中找不到版本号。我正在接收一些 json 编码的数据并想用 R::graph() 处理它,但是我收到了一个错误。

$json = '{"id": "","title": "Test Article","slug": "test-article","content": "<p>This is a test article</p>"}';

$decoded = json_decode($json, true);

这给了我一个数组

var_dump($decoded)

array(4) {
  ["id"]=>
  string(0) ""
  ["title"]=>
  string(12) "Test Article"
  ["slug"]=>
  string(12) "test-article"
  ["content"]=>
  string(29) "<p>This is a test article</p>"
}

echo gettype($decoded);

返回“数组”。

但是当我尝试这个时:

$bean = R::graph($decoded);

我收到 RedBean_Exception_Security 错误消息“Expected array but got :string”; rb.php 第 9029 行

我究竟做错了什么?更重要的是,我该如何解决?

谢谢。

4

1 回答 1

1

根据文档“一个数组必须包含一个名为 'type' 的键,其中包含它所代表的 bean 的类型”。所以我只需要在调用 R::graph() 之前添加 $decoded['type'] = 'table_name'。如果我在提交的表单中添加一个名为“type”的隐藏字段,它也可以工作。

<input type="hidden" name="type" value="table_name" />
于 2013-03-20T22:13:15.630 回答