本文整理匯總了PHP中Zend\View\Model\JsonModel::addChild方法的典型用法代碼示例。如果您正苦於以下問題:PHP JsonModel::addChild方法的具體用法?PHP JsonModel::addChild怎麽用?PHP JsonModel::addChild使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Zend\View\Model\JsonModel
的用法示例。
在下文中一共展示了JsonModel::addChild方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: testRecursesJsonModelChildrenWhenRendering
/**
* @group 2463
*/
public function testRecursesJsonModelChildrenWhenRendering()
{
$root = new JsonModel(array('foo' => 'bar'));
$child1 = new JsonModel(array('foo' => 'bar'));
$child2 = new JsonModel(array('foo' => 'bar'));
$child1->setCaptureTo('child1');
$child2->setCaptureTo('child2');
$root->addChild($child1)->addChild($child2);
$expected = array('foo' => 'bar', 'child1' => array('foo' => 'bar'), 'child2' => array('foo' => 'bar'));
$test = $this->renderer->render($root);
$this->assertEquals(json_encode($expected), $test);
}
示例2: create
public function create($data)
{
$router = $this->serviceLocator->get('router');
$controllerLoader = $this->serviceLocator->get('controllerLoader');
foreach ($data as $key => $requestData) {
$request = new Request();
$request->setMethod($requestData['method']);
$request->setUri($requestData['uri']);
$queryString = $request->getUri()->getQuery();
if ($queryString) {
$query = [];
parse_str($queryString, $query);
$request->setQuery(new Parameters($query));
}
if (isset($requestData['headers'])) {
foreach ($requestData['headers'] as $name => $value) {
$request->getHeaders()->addHeaderLine($name, $value);
}
}
$request->getHeaders()->addHeaders([$this->request->getHeaders()->get('Accept'), $this->request->getHeaders()->get('Content-Type')]);
if (isset($requestData['content'])) {
$request->setContent(json_encode($requestData['content']));
}
$response = new Response();
$event = new MvcEvent();
$event->setRequest($request);
$event->setResponse($response);
$match = $router->match($request);
RouteListener::resolveController($match);
$contentModel = null;
if (!isset($match) || $match->getMatchedRouteName() != 'rest.' . $this->options->getManifestName()) {
$contentModel = $this->createExceptionContentModel(new Exception\RuntimeException(sprintf('%s uri is not a rest route, so is not supported by batch controller.', $requestData['uri'])), $event);
} else {
try {
$controller = $controllerLoader->get($match->getParam('controller'));
} catch (\Zend\ServiceManager\Exception\ServiceNotFoundException $exception) {
$contentModel = $this->createExceptionContentModel($exception, $event);
$response->setStatusCode(404);
}
$event->setRouteMatch($match);
$controller->setEvent($event);
if (!isset($contentModel)) {
try {
$contentModel = $controller->dispatch($request, $response);
} catch (\Exception $exception) {
$contentModel = $this->createExceptionContentModel($exception, $event);
}
}
}
$headers = [];
foreach ($response->getHeaders() as $header) {
$headers[$header->getFieldName()] = $header->getFieldValue();
}
$responseModel = new JsonModel(['status' => $response->getStatusCode(), 'headers' => $headers]);
if ($contentModel instanceof ModelInterface) {
$responseModel->addChild($contentModel, 'content');
}
$this->model->addChild($responseModel, $key);
}
return $this->model;
}