데이터를 얻기 위해 mongo odm 쿼리를 사용했지만 쿼리 데이터를 얻으면 배열 형식으로 반환되지만 json 형식으로 데이터를 얻고 싶습니다. 어떻게 데이터를 배열에서 json으로 변환합니까? 여기 내 코드가 있습니다.
public function loadAction()
{
$response = $this->getResponse();
$id = (int) $this->params()->fromRoute('id', 0);
$dm = $this->getServiceLocator()->get('doctrine.documentmanager.odm_default');
$calendars = $dm->createQueryBuilder('Calendar\Document\Event')
->hydrate(false)
->field("calendar_id")->equals($id)
->getQuery()->execute();
$array = array();
if($calendars && !is_null($calendars) && is_object($calendars)){
foreach($calendars as $key=>$value) {
$array[] = $value;
}
}
echo "<pre>";
print_r($array);
echo "</pre>";
return $response;
//return $this->getResponse()->setContent(Json::encode($array));
}
내 대답은 다음과 같습니다.
Array
(
[0] => Array
(
[_id] => 11
[calendar_id] => 44
[title] => fhfhfhfhfhfhfhf
[description] => hfhfhfhfhffh
[begin] => MongoDate Object
(
[sec] => 1397744580
[usec] => 0
)
[end] => MongoDate Object
(
[sec] => 1403187780
[usec] => 0
)
)
[1] => Array
(
[_id] => 12
[calendar_id] => 44
[title] => fhfhfhfhfhfhfhfdgdg
[description] => hfhfhfhfhffhdgdgdg
[begin] => MongoDate Object
(
[sec] => 1397744580
[usec] => 0
)
[end] => MongoDate Object
(
[sec] => 1403360580
[usec] => 0
)
)
[2] => Array
(
[_id] => 13
[calendar_id] => 44
[title] => xvxvxvxv
[description] => czzzvxvvzxvxvzxv
[begin] => MongoDate Object
(
[sec] => 1398349380
[usec] => 0
)
[end] => MongoDate Object
(
[sec] => 1403706180
[usec] => 0
)
)
[3] => Array
(
[_id] => 14
[calendar_id] => 44
[title] => xvxvxvxggjgjfj
[description] => czzzvxvvzxhhdfhhd
[begin] => MongoDate Object
(
[sec] => 1398349380
[usec] => 0
)
[end] => MongoDate Object
(
[sec] => 1403706180
[usec] => 0
)
)
[4] => Array
(
[_id] => 15
[calendar_id] => 44
[title] => xvxvxvxggjgjfjsadgggggggfdhdfhhdh
[description] => czzzvxvvzxhhdfhhddghhffffffffffffff
[begin] => MongoDate Object
(
[sec] => 1398349380
[usec] => 0
)
[end] => MongoDate Object
(
[sec] => 1404138180
[usec] => 0
)
)
)
하지만이 형식으로 dat를 원합니다
[{
"event_id":"2",
"calendar_id":"1",
"author_id":"1",
"title":"Launch",
"description":"Launch Break",
"begin":"2014-03-02 20:00:00",
"end":"2014-03-31 16:53:00",
"calendar_title":"Hijri Calender",
"author_email":"[email protected]"
}]
if($calendars && !is_null($calendars) && is_object($calendars)){
foreach($calendars as $key => $value) {
$array[] = array(
'event_id' => $value['_id'],
'calendar_id' => $value['calendar_id'],
'author_id' => $value['author_id'], // <-- author_id is defined?
'title' => $value['title'],
'description' => $value['description'],
'begin' => date('Y-m-d H:i:s', $value['begin']->sec),
'end' => date('Y-m-d H:i:s', $value['end']->sec),
'calendar_title' => $value['calendar_title'], // <-- calendar_title is defined?
'etc..' => $value['etc..'],
);
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다