Czasami zamiast widoku w postaci HTML w Zend Framework 2 chciałbyś zwrócić dane w innej postaci, na przykład JSON. Można to zrobić stosunkowo łatwo w dwóch krokach.
1. Odblokowanie JsonStrategy
Na początku musimy przygotować odpowiedni widok, który będzie sprawdzał sytuację, gdzie będziemy zwracać dane w JSON i dzięki temu widok zwróci nam dane w tym formacie. Widok JsonStrategy będzie wywoływał metodę JsonRenderer w dwóch sytuacjach:
– Model widoku zwracany przez akcję w kontrolerze to JsonModel.
– Nagłówek „HTTP Accept” wysyła „Request”, który obejmuje „application/json”.
Aby odblokować JsonStrategy, po prostu konfigurujemy ją w pliku konfiguracyjnym modułu, np. module/Application/config/module.config.php:
Jak możesz spojrzeć powyżej na fragment kodu, dodajemy ViewJsonStrategy do naszej tabeli strategii.
2. Zwrócenie wartości jako JsonModel w akcji kontrolera
Aby wysłać treść w JSON do klienta, kiedy w nagłówku nie ma zadeklarowanego „application/json”, używamy JsonModel w akcji w kontrolerze, np. module/Application/src/Application/Controller/IndexController.php:
Wynik teraz powinien zostać zaprezentowany jako JSON. Oczywiście jeśli wysyłasz JSON w oparciu o „Accept” w nagłówku, wtedy możesz normalnie korzystać z ViewModel.