0

私のデフォルトのレイアウトはdefault.ctpですが、コントローラーで使用する場合、スキャフォールディングビューにのみ別のレイアウトdefault-scaffolds.ctpを使用したいと思います。

public $scaffold;

AppControllerで試してみました

    public function beforeScaffold() {
        $this->layout = 'default-scaffolds';
}

しかし、それはうまくいきませんでした。

私はこれでどんな助けにも感謝します。

4

3 に答える 3

3

同じ問題に直面していて、ルータープレフィックス「admin」を指定して設定することで解決しました

public $scaffold = 'admin';

コントローラとAppControllerでbeforeFilter()メソッドに追加しました

public function beforeFilter() {
  if ($this->request->prefix == 'admin') {
    $this->layout = 'scaffold';
  } 
}
于 2012-12-02T21:55:14.270 に答える
1

これを追加beforeRender()

public function beforeRender() {
    if (in_array($this->request->action, array('index', 'add', 'view', 'edit'))) {
        $this->layout = 'default-scaffolds';
    }
}
于 2012-11-23T20:04:24.010 に答える
0

または、lib / Cake / Controller / Scaffold.phpの377行目(_scaffold(CakeRequest $request)-function、このif:内if (in_array($request->params['action'], $this->scaffoldActions))に、次の行を追加するだけです:

$this->layout = 'default_scaffold'; // this is a custom-added line in order to activate the default CSS file when scaffolding

そして、default_scaffold.ctpをレイアウトフォルダに追加します。

于 2014-08-20T20:45:05.943 に答える