CakePHP 3.0 .json缺少模板错误

时间:2015-04-16 13:24:38

标签: cakephp cakephp-3.0

我正在将现有的2.5应用迁移到3.0。我现在在使用json请求时遇到错误的模板错误,这是我在旧版本中没有的。

我没有看到任何可能错过的步骤。

routes.php文件

Router::extensions(['json', 'xml']);

PagesController.php

public function initialize()
{
    parent::initialize();
    $this->loadComponent('RequestHandler');
}

public function request(){

    $this->request->onlyAllow('ajax');

    $userName = $this->request->data['name'];
    $userCompany = $this->request->data['company'];
    $userEmail = $this->request->data['email'];
    $userPhone = $this->request->data['phone'];

    //send an email

}

之前的应用程序能够检测到请求类型并返回相同类型。无需设置渲染。

1 个答案:

答案 0 :(得分:1)

我发现因为我试图访问PagesController.php上的一个动作,即routes.php试图通过查找模板的显示动作传递它。

routes.php文件

$routes->connect('/pages/*', ['controller' => 'Pages', 'action' => 'display']);

PagesController.php

public function display()
{
    $path = func_get_args();

    $count = count($path);
    if (!$count) {
        return $this->redirect('/');
    }
    $page = $subpage = null;

    if (!empty($path[0])) {
        $page = $path[0];
    }
    if (!empty($path[1])) {
        $subpage = $path[1];
    }
    $this->set(compact('page', 'subpage'));

    try {
        $this->render(implode('/', $path));
    } catch (MissingTemplateException $e) {
        if (Configure::read('debug')) {
            throw $e;
        }
        throw new NotFoundException();
    }
}