Cakephp不呈现视图

时间:2013-04-01 19:04:05

标签: php cakephp view controller render

我有一个控制器,它不呈现视图(文件存在)。它只是显示一个空白页面。

此外,它仅在登台服务器上发生 - 其他两个开发环境正常工作。

以下是代码:

function category($catId = null)
{
    if (!isset($catId) || empty($catId)) {

        $this->data['category'] = 'all';
        $this->data['categories'] = $this->ShopCat->find('all',array('order'=>array('ShopCat.title ASC')));

        $this->paginate = array(
            'limit' => 9,
            'order' => array('ShopProd.featured DESC','ShopProd.title ASC')
        );
        $this->data['products'] = $this->paginate('ShopProd');
    } else {
        $catId = (int) $catId;
        $this->ShopCat->id = $catId;
        if (!$this->ShopCat->exists($catId)) $this->cakeError('error404');

        $this->data['category'] = $this->ShopCat->find('first', array('ShopCat.id' => $catId));
        $this->data['categories'] = $this->ShopCat->find('all',array('order'=>array('ShopCat.title ASC')));

        $this->paginate = array(
            'conditions' => array('ShopProd.shop_cat_id' => $catId),
            'limit' => 9
        );
        $this->data['products'] = $this->paginate('ShopProd');
    }
}

为什么这不起作用?因为我没有想法......

UPDATE :整个控制器代码运行正常,它只是不呈现任何内容。在其他控制器方法 - 所有罚款,完美的工作。

更新:问题已解决,感谢大家:)这是视图文件中的错误。

2 个答案:

答案 0 :(得分:1)

你的$ catId将永远存在。您已在函数中声明。

也许更有用的更新你的第一个if

if(empty($ catId)){...}


您是否在控制器中导入了另一个型号? 喜欢:$ uses = array('ShopCat','ShopProd');

或在$ this-> find

之前使用App :: import('Model','ShopCat')

答案 1 :(得分:-2)

想出来 - 视图文件中存在错误。