Zend Framework 2: Retornando dados no formato JSON no Controller

Posted on abril 30, 2013. Filed under: PHP, Zend Framework | Tags:, , |

O Zend Framework 2 disponibiliza uma forma simples de retornar dados no formato JSON na camada de View. Basta usar a classe JsonModel no lugar de ViewModel no action do seu Controller. Para utilizar essa funcionalidade, primeiro é necessário habilitar o JsonStrategy dentro do arquivo module.config.php referente ao seu módulo. Veja como fazer abaixo:

// arquivo module.config.php
'view_manager' => array(
		'display_not_found_reason' => true,
		'display_exceptions'       => true,
		'doctype'                  => 'HTML5',
		'not_found_template'       => 'error/404',
		'exception_template'       => 'error/index',
		'template_map' => array(
				'layout/layout'           => __DIR__ . '/../view/layout/layout.phtml',
				'application/index/index' => __DIR__ . '/../view/application/index/index.phtml',
				'error/404'               => __DIR__ . '/../view/error/404.phtml',
				'error/index'             => __DIR__ . '/../view/error/index.phtml',
		),
		'template_path_stack' => array(
				__DIR__ . '/../view',
		),
		'strategies' => array(
				'ViewJsonStrategy',
		),
),

Para gerar um conteúdo no formato JSON, basta retornar uma instância da classe JsonModel. Veja exemplo abaixo:

namespace Application\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
use Zend\View\Model\JsonModel;

class IndexController extends AbstractActionController
{
	public function indexAction()
	{
		return new JsonModel(array(
				'nome' => 'Douglas V. Pasqua',
				'email' => 'blablabla@bla.xyz',
		));
	}
}

Ao acessar o action, a saída gerada seria:

{"nome":"Douglas V. Pasqua","email":"blablabla@bla.xyz"}

Outras dicas para Controllers no Zend Framework 2

Zend Framework 2: Desabilitando a renderização do Layout e View
Zend Framework 2: Renderizando a view dentro do Controller
Zend Framework 2: Chamando View Helpers dentro do Controller
Zend Framework 2: Redirecionamento de Rota
Zend Framework 2: Renderizando uma view diferente do Action padrão do Controller

Make a Comment

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Liked it here?
Why not try sites on the blogroll...

%d blogueiros gostam disto: