Redbean: как использовать R::graph() с декодированным вводом json

Я думаю, что использую 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 с сообщением «Ожидаемый массив, но получен: строка»; rb.php строка 9029

Что я делаю не так? И самое главное, как мне это исправить?

Спасибо.


person HomeSlice    schedule 17.03.2013    source источник
comment
Хорошо, через две секунды после того, как я задал этот вопрос, я нашел ответ. Мой представитель составляет ‹ 50, поэтому я не мог просто добавить его в качестве ответа. Согласно документации массив должен содержать ключ с именем «тип», содержащий тип компонента, который он представляет. Поэтому мне просто нужно было добавить $decoded['type'] = 'articles' перед вызовом R::graph().   -  person HomeSlice    schedule 18.03.2013


Ответы (1)


Согласно документации «Массив должен содержать ключ с именем« тип », содержащий тип компонента, который он представляет». Поэтому мне просто нужно было добавить $decoded['type'] = 'table_name' перед вызовом R::graph(). Это также работает, если я добавляю скрытое поле с именем «тип» в форму, которую я отправляю.

<input type="hidden" name="type" value="table_name" />
person HomeSlice    schedule 20.03.2013