1

Cake 2.3.5 の autorender ビューを変更する方法はありますか?

メインの Controller ディレクトリのサブフォルダーでビューをレンダリングしたいのですが、例を次に示します。

class AdministrationController extends AppController {

    public function products(){ 
        $this->render('/Administration/products/index');
    }
}

ビューを次のように整理されたサブフォルダーに保存したいと思います。

- Administration
  - products
    - index.ctp
    - edit.ctp

$this->render()私の質問は次のとおりです。すべてのアクションで使用する必要がないように、これを作り直す方法はありますか?

4

1 に答える 1

1

はい

対応するビュー フォルダーへの相対パスを使用して render を呼び出します。

$this->render('products/index')

または、ビューフォルダーに相対的であると理解される「絶対」パスで呼び出します。

$this->render('/Administration/products/index');

これらの呼び出しは両方ともビュー ファイルをレンダリングしますapp/View/Administration/products/index。ビュー ファイルをそのように構成したい場合はrender、各アクションで呼び出すか、viewPath変数を操作して必要な場所 (クラスまたは beforeFilter のいずれか) をポイントします。

管理コントローラが正常ではありません

質問にはAdministration, productsand index- がありますが、すべて正常なことですが、管理コントローラーを持つことは正常ではありません。そのようなコントローラ構造では、管理コントローラが巨大になります。

これを行う通常の方法は、管理ルーティングを使用して管理インデックスを定義することです。

class ProductsController extends AppController {

    function admin_index() {
         //
    }
}
于 2013-07-27T15:55:29.300 に答える