CakePHP3.5 загрузить другой файл шаблона

В моем PhotoalbumsController Я пытаюсь загрузить другой макет, когда действие imgToAlbum называется.

<?php
namespace App\Controller\Admin;

use App\Controller\AppController;
use Cake\ORM\TableRegistry;
use Cake\Http\ServerRequest;
use Cake\Event\Event;

class PhotoalbumsController extends AppController
{
public function initialize()
{
parent::initialize();
}

...

public function imgToAlbum()
{
...
$this->viewBuilder()->setLayout('ajax');
$content = 'test';
$this->set(compact($content));
}

Я получаю эту ошибку:

Ошибка: представление для PhotoalbumsController :: imgToAlbum () не найдено.

Подтвердите, что вы создали файл:
«Admin / Photoalbums / img_to_album.ctp» по одному из следующих путей

Я также пытался $this->viewBuilder()->setTemplate('ajax');
а также $this->viewBuilder()->template('ajax');, Но они тоже не работают.

Я использую тот же трюк в моем AppController для моего бэкэнда, т. е. это работает:

public function beforeRender(Event $event)
{
parent::beforeRender($event);
if($this->request->getParam('prefix') and $this->request->getParam('prefix') == 'admin') {
$this->viewBuilder()->setLayout('admin');
}
}

Что мне здесь не хватает.

0

Решение

Это должно сделать трюк:

$this->autoRender = false;
0

Другие решения

Других решений пока нет …