我有一个控制器,它不呈现视图(文件存在)。它只是显示一个空白页面。
此外,它仅在登台服务器上发生 - 其他两个开发环境正常工作。
以下是代码:
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 :整个控制器代码运行正常,它只是不呈现任何内容。在其他控制器方法 - 所有罚款,完美的工作。
更新:问题已解决,感谢大家:)这是视图文件中的错误。
答案 0 :(得分:1)
你的$ catId将永远存在。您已在函数中声明。
也许更有用的更新你的第一个if
if(empty($ catId)){...}
您是否在控制器中导入了另一个型号? 喜欢:$ uses = array('ShopCat','ShopProd');
或在$ this-> find
之前使用App :: import('Model','ShopCat')答案 1 :(得分:-2)
想出来 - 视图文件中存在错误。