3

Redbean 3.3.7 (Web サイトからのオールインワン ダウンロード) を使用していると思いますが、コードにバージョン番号が見つかりません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

ドキュメントによると、「配列には、それが表す Bean のタイプを含む 'type' という名前のキーが含まれている必要があります」。したがって、R::graph() を呼び出す前に $decoded['type'] = 'table_name' を追加する必要がありました。送信するフォームに「タイプ」という名前の非表示フィールドを追加しても機能します。

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