本文整理汇总了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;
}