Doctrine ODM 1.0beta3에서 Document에서 @EmbeddedDocument를 가져와 다른 문서에 넣어야합니다.Doctrine (MongoDb 포함)에서 EmbeddedDocument를 복제하는 방법
그러나 이것을 시도하면 이상한 결과가납니다.
중복 및 EmbeddedObject 방법이 있습니까?
편집 :
은 "이상한"결과가이 포함 된 문서의 속성이 다른 임베디드 문서와 함께 삽입되어 있다는 것입니다.
자세한 내용 :
Queue: -> [ Job, Job, Job]
는 또한 일부 Job
의이 @EmbedOne
속성이 $callback
라는 또 다른 Job
이 : 내가 @EmbedMany
관계에서 여러 Job
문서와 Queue
포함 된 문서가
:
class Job {
/** @EmbedOne(targetDocument="Cron\Model\Document\Job") */
private $callback;
/** @Hash */
private $result;
}
/*
* @EmbeddedDocument
*/
class Queue {
/** @EmbedMany(targetDocument="Cron\Model\Document\Job") */
private $jobs = array();
//Getters and setters...
}
$ callback Job을 가져 와서 $ result hash에 값을 추가하고 $ jobs 배열 ($)에이 Job을 대기열에 넣으려고합니다.
내가 얻은 것은 작업이 대기열에 들어간 것뿐 아니라 $ jobs 배열의 $ result 해시도 작업 문서 인 것처럼 보입니다. MongoDB의에서
작업 배열 :
...
[2] => Array
(
[parameters] => Array
(
[field] => office
[result] => "foo"
)
)
[3] => Array
(
[_id] => 638
[parameters] => Array
(
[field] => office
[result] => "foo"
)
)
코드는 이것이다 :
$job = $queue->getLastJob();
$callback = $job->getCallback();
$params = $callback->getParameters();
$params['result'] = 'foo';
$callback->setParameters($params);
$queue->addJobs($callback);
이상한 결과는 무엇입니까? –