Verwenden Sie einfach setTerminal(true)
in Ihrem Controller, um das Layout zu deaktivieren.
Dieses Verhalten hier dokumentiert: Zend View Quick Start :: Dealing With Layouts
Beispiel:
<?php
namespace YourApp\Controller;
use Zend\View\Model\ViewModel;
class FooController extends AbstractActionController
{
public function fooAction()
{
$viewModel = new ViewModel();
$viewModel->setVariables(array('key' => 'value'))
->setTerminal(true);
return $viewModel;
}
}
Wenn Sie JSON-Antwort senden möchten, anstatt eine .phtml Datei von Rendering, versuchen JsonRenderer zu verwenden:
Fügen Sie diese Zeile an die Spitze der Klasse:
use Zend\View\Model\JsonModel;
und h ere eine Aktion Beispiel, das JSON zurückgibt:
public function jsonAction()
{
$data = ['Foo' => 'Bar', 'Baz' => 'Test'];
return new JsonModel($data);
}
EDIT:
Vergessen Sie nicht ViewJsonStrategy
auf Ihre module.config.php
Datei hinzufügen, um Controller zu ermöglichen JSON zurückzukehren. Danke @Remi!
'view_manager' => [
'strategies' => [
'ViewJsonStrategy'
],
],
Vergessen Sie nicht, dieses 'strategies' => array ( 'ViewJsonStrategy', ) zu Ihrer config.php hinzuzufügen von http://akrabat.com/zend-framework-2/returning-json-from -a-zf2-controller-action/ –
Ja, du hast Recht. Ich habe gerade meine Antwort bearbeitet. Vielen Dank. – edigu
Wenn wir ViewModel mit JSON Encoding zurückgeben wollen, was sollen wir tun? –