MongoDB возвращает документ в качестве экземпляра класса в PHP - PullRequest
0 голосов
/ 15 апреля 2020

Учитывая PHP класс MyClass:

class MyClass {
   private $a;
   private $b;

   function doSomething() {
      return $this->a + $this->b;
   }
}

Могу ли я создать экземпляр этого класса с массивом результатов, возвращенным MongoDB, не присваивая каждому значению класс вручную? Массив имеет точно такие же ключи (a и b). В настоящее время я использую следующий трудоемкий подход:

$result = $mongo->findOne(array('key' => 'value'));
$myClass = new MyClass();
$myClass->a = $result['a'];
$myClass->b = $result['b'];

1 Ответ

1 голос
/ 15 апреля 2020

Вы можете создавать динамические c переменные:

$result = $mongo->findOne(array('key' => 'value'));
$myClass = new MyClass();
foreach($result as $k => $v) {
    $myClass->{$k} = $v;
}

Не знаю, является ли это хорошей практикой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...