0

ビューをレンダリングしないコントローラーがあります(ファイルが存在します)。空白のページが表示されるだけです。

また、ステージング サーバーでのみ発生します。他の 2 つの開発環境では問題なく動作します。

コードは次のとおりです。

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 は常に存在します。関数で宣言しました。

たぶん、最初に更新した方が便利です

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


コントローラーに別のモデルをインポートしましたか? 以下のように: $uses = array('ShopCat', 'ShopProd');

または $this->find の前に App::import('Model', 'ShopCat') を使用します

于 2013-04-02T11:51:42.563 に答える
-2

わかりました-ビューファイルにエラーがありました。

于 2013-04-01T20:12:33.313 に答える