Как вы получаете строковое значение MongoID, используя PHP? - PullRequest
10 голосов
/ 22 октября 2011

После выполнения вставки я хочу передать объект клиенту с помощью json_encode (). Проблема в том, что значение _id не включено.

$widget = array('text' => 'Some text');

$this->mongo->db->insert($widget);


If I echo $widget['_id'] the string value gets displays on the screen, but I want to do something like this:

$widget['widgetId'] = $widget['_id']->id;


So I can do json_encode() and include the widget id:

echo json_encode($widget);

Ответы [ 4 ]

43 голосов
/ 28 октября 2011

Поверьте, это то, что вы ищете.

$widget['_id']->{'$id'};

Как-то так.

$widget = array('text' => 'Some text');
$this->mongo->db->insert($widget);
$widget['widgetId'] = $widget['_id']->{'$id'};
echo json_encode($widget);
21 голосов
/ 15 января 2013

Вы также можете использовать:

(string)$widget['_id']
2 голосов
/ 09 июля 2013

Я использовал нечто подобное:

(string)$widget->_id
1 голос
/ 06 февраля 2018

Я использовал нечто подобное, если объект:

$widget->_id->{'$oid'}

или

(string)$widget->_id

или массив:

$widget['id']->{'$oid'}
(string)$widget['_id']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...