2011-10-22 8 views
8

Después de hacer una inserción, quiero pasar el objeto al cliente usando json_encode(). El problema es que el valor _id no está incluido.¿Cómo se obtiene el valor de cadena de un MongoID usando PHP?

$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); 

Respuesta

41

Creo que esto es lo que buscas.

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

Algo así.

$widget = array('text' => 'Some text'); 
$this->mongo->db->insert($widget); 
$widget['widgetId'] = $widget['_id']->{'$id'}; 
echo json_encode($widget); 
+2

referencia aquí: http://php.net/manual/en/class.mongoid.php. Preferiría el tipo de transmisión (cadena) debajo de mí mismo, pero en el momento de la pregunta estaba usando el método descrito en los documentos. –

17

También puede utilizar:

(string)$widget['_id'] 
1

he usado algo similar:

(string)$widget->_id

0

he usado algo similar si el objeto:

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

o

(string)$widget->_id 

o matriz:

$widget['id']->{'$oid'} 
(string)$widget['_id'] 
Cuestiones relacionadas