Après avoir effectué un insert, je veux transmettre l'objet au client à l'aide de JSON_ENCODE (). Le problème est que la valeur _id n'est pas incluse.
$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);
5 Réponses :
Croyez que c'est ce que vous êtes après. Quelque chose comme ça. P> $widget = array('text' => 'Some text');
$this->mongo->db->insert($widget);
$widget['widgetId'] = $widget['_id']->{'$id'};
echo json_encode($widget);
Référence ici: php.net/manual/fr/class.mongoid.php . Je préférerais la (String) Typeecast en dessous de moi-même, mais au moment de la question que j'utilisais la méthode décrite dans les documents.
Vous pouvez également utiliser:
(string)$widget['_id']
J'ai utilisé quelque chose de similaire:
Merci beaucoup :) ça marche bien pour moi ... $ filtre = ['_ id' => $ ligne -> _ id]; et $ filtre que vous pouvez passer à la fonction DELEETONE et FINCHONE
J'ai utilisé quelque chose de similaire si l'objet: ou p> ou matrice: p>
Correction correcte est d'utiliser ObjectId à partir de MongoDB:
function getMongodbIDString($objectId){ $objectId = new \MongoDB\BSON\ObjectId($objectId); return $objectId->jsonSerialize()['$oid']; }
merci d'avoir donné ce code. Aucun autre code ne fonctionne, sauf ... une fois merci beaucoup.
@Dhanunjaya, sympa, essayez d'utiliser la doctrine ODM, il gère tout ce genre de choses