2014-01-05 2 views
0

Я использую библиотеку this MongoDB для PHPПолучение объекта в Монго PHP библиотеки

Если я использую этот код:

$db->users->find(); 

я получаю ассоциативный массив.

Возможно ли получить объект в результате метода find()?

Например, в PDO я могу сделать это так:

$stmt->fetch(PDO::FETCH_OBJ); 

Спасибо.

ответ

0

Вызов

$db->users->find(); 

возвращает \ MongoCursor объект, который является итератор вы можете перебираем в цикле Еогеасп как и при работе с массивом. Но каждый результат, который вы получаете от него, является ассоциативным массивом.

http://php.net/mongocollection.find

Таким образом, чтобы получить объекты вместо этого вы могли бы бросить каждый элемент объекта до его использования:

$list = $db->users->find(); 
foreach($list as $user) { 
    $user = (object)$user; // object cast here 

    echo $user->name; // use it as an object 
} 
+0

Это не преобразует внутренние ассоциативные массивы объектов. – David

1

Если все, что вы ищете является объектом StdClass (например, с PDO::FETCH_OBJ) вы можете бросить текущий элемент:

$obj = (object) $db->users->find()->getNext(); 

Узнайте больше о литье в PHP инструкции:

Смежные вопросы