0

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

它也只发生在登台服务器上——另外两个开发环境工作正常。

这是代码:

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');
    }
}

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

更新:整个控制器代码运行正常,它只是不渲染任何东西。在其他控制器方法中 - 一切正常,完美运行。

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

4

2 回答 2

1

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

如果要更新你的第一个可能更有用

如果(空($catId)){...}


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

或在 $this->find 之前使用 App::import('Model', 'ShopCat')

于 2013-04-02T11:51:42.563 回答
-2

想通了 - 视图文件中有错误。

于 2013-04-01T20:12:33.313 回答