CakePHP3.5加载不同的模板文件

时间:2018-04-11 19:56:01

标签: php cakephp cakephp-3.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');
    }
}

我在这里缺少什么。

1 个答案:

答案 0 :(得分:0)

这应该是一个技巧:

$this->autoRender = false;