コントローラでsetTerminal(true)
を使用してレイアウトを無効にするだけです。
この動作はここに文書化:Zend View Quick Start :: Dealing With Layouts
例:
<?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;
}
}
をあなたの代わりに.phtmlファイルをレンダリングするJSONレスポンスを送信する場合は、JsonRendererを使用するようにしてください:
この行を追加します。クラスのトップに:
use Zend\View\Model\JsonModel;
とh ERE JSONを返すアクションの例:
public function jsonAction()
{
$data = ['Foo' => 'Bar', 'Baz' => 'Test'];
return new JsonModel($data);
}
EDIT:
は、コントローラがJSONを返すことができるようにあなたのmodule.config.php
ファイルにViewJsonStrategy
を追加することを忘れないでください。ありがとう@レミ!
'view_manager' => [
'strategies' => [
'ViewJsonStrategy'
],
],
http://akrabat.com/zend-framework-2/returning-json-fromから、あなたのconfig.phpに、=>配列( 'ViewJsonStrategy'、 )この '戦略' を追加することを忘れないでください。 -a-zf2-controller-action/ –
はい、そうです。私はちょうど私の答えを編集しました。ありがとうございました。 – edigu
jsonエンコーディングでviewModelを返す場合はどうすればいいですか? –